{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}

-- | Contains all types with cyclic dependencies (between each other or to itself)
module StripeAPI.CyclicTypes where

import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe
import qualified Data.Aeson
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.ToJSON
import qualified Data.Aeson as Data.Aeson.Types.Internal
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.Generics
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified StripeAPI.Common
import StripeAPI.Types.AccountCapabilities
import StripeAPI.Types.AccountDashboardSettings
import StripeAPI.Types.AccountDeclineChargeOn
import StripeAPI.Types.AccountLink
import StripeAPI.Types.AccountPaymentsSettings
import StripeAPI.Types.AccountRequirementsError
import StripeAPI.Types.AccountTosAcceptance
import StripeAPI.Types.Address
import StripeAPI.Types.ApplePayDomain
import StripeAPI.Types.Application
import StripeAPI.Types.BalanceAmountBySourceType
import StripeAPI.Types.BitcoinTransaction
import StripeAPI.Types.CardMandatePaymentMethodDetails
import StripeAPI.Types.ChargeFraudDetails
import StripeAPI.Types.CheckoutSessionCustomDisplayItemDescription
import StripeAPI.Types.CountrySpecVerificationFieldDetails
import StripeAPI.Types.Coupon
import StripeAPI.Types.DeletedAccount
import StripeAPI.Types.DeletedAlipayAccount
import StripeAPI.Types.DeletedApplePayDomain
import StripeAPI.Types.DeletedBankAccount
import StripeAPI.Types.DeletedBitcoinReceiver
import StripeAPI.Types.DeletedCard
import StripeAPI.Types.DeletedCoupon
import StripeAPI.Types.DeletedCustomer
import StripeAPI.Types.DeletedDiscount
import StripeAPI.Types.DeletedInvoice
import StripeAPI.Types.DeletedInvoiceitem
import StripeAPI.Types.DeletedPerson
import StripeAPI.Types.DeletedPlan
import StripeAPI.Types.DeletedProduct
import StripeAPI.Types.DeletedRadarValueList
import StripeAPI.Types.DeletedRadarValueListItem
import StripeAPI.Types.DeletedRecipient
import StripeAPI.Types.DeletedSku
import StripeAPI.Types.DeletedSubscriptionItem
import StripeAPI.Types.DeletedTaxId
import StripeAPI.Types.DeletedTerminalLocation
import StripeAPI.Types.DeletedTerminalReader
import StripeAPI.Types.DeletedWebhookEndpoint
import StripeAPI.Types.DeliveryEstimate
import StripeAPI.Types.DisputeEvidenceDetails
import StripeAPI.Types.EphemeralKey
import StripeAPI.Types.ExchangeRate
import StripeAPI.Types.Fee
import StripeAPI.Types.FinancialReportingFinanceReportRunRunParameters
import StripeAPI.Types.Inventory
import StripeAPI.Types.InvoiceItemThresholdReason
import StripeAPI.Types.InvoiceLineItemPeriod
import StripeAPI.Types.InvoiceSettingCustomField
import StripeAPI.Types.InvoiceSettingSubscriptionScheduleSetting
import StripeAPI.Types.InvoicesResourceInvoiceTaxId
import StripeAPI.Types.InvoicesStatusTransitions
import StripeAPI.Types.IssuingSettlement
import StripeAPI.Types.IssuingVerification
import StripeAPI.Types.IssuingAuthorizationMerchantData
import StripeAPI.Types.IssuingAuthorizationVerificationData
import StripeAPI.Types.IssuingAuthorizationViolatedAuthControl
import StripeAPI.Types.IssuingCardPin
import StripeAPI.Types.IssuingCardSpendingLimit
import StripeAPI.Types.IssuingCardholderCompany
import StripeAPI.Types.IssuingCardholderIndividualDob
import StripeAPI.Types.IssuingCardholderRequirements
import StripeAPI.Types.IssuingCardholderSpendingLimit
import StripeAPI.Types.LegalEntityDob
import StripeAPI.Types.LegalEntityJapanAddress
import StripeAPI.Types.LightAccountLogout
import StripeAPI.Types.LoginLink
import StripeAPI.Types.MandateMultiUse
import StripeAPI.Types.MandateSepaDebit
import StripeAPI.Types.MandateSingleUse
import StripeAPI.Types.NotificationEventData
import StripeAPI.Types.NotificationEventRequest
import StripeAPI.Types.OfflineAcceptance
import StripeAPI.Types.OnlineAcceptance
import StripeAPI.Types.PackageDimensions
import StripeAPI.Types.PaymentIntentNextActionRedirectToUrl
import StripeAPI.Types.PaymentMethodCardChecks
import StripeAPI.Types.PaymentMethodCardPresent
import StripeAPI.Types.PaymentMethodCardWalletAmexExpressCheckout
import StripeAPI.Types.PaymentMethodCardWalletApplePay
import StripeAPI.Types.PaymentMethodCardWalletGooglePay
import StripeAPI.Types.PaymentMethodCardWalletSamsungPay
import StripeAPI.Types.PaymentMethodDetailsAchCreditTransfer
import StripeAPI.Types.PaymentMethodDetailsAchDebit
import StripeAPI.Types.PaymentMethodDetailsAlipay
import StripeAPI.Types.PaymentMethodDetailsBancontact
import StripeAPI.Types.PaymentMethodDetailsCardChecks
import StripeAPI.Types.PaymentMethodDetailsCardInstallmentsPlan
import StripeAPI.Types.PaymentMethodDetailsCardPresentReceipt
import StripeAPI.Types.PaymentMethodDetailsCardWalletAmexExpressCheckout
import StripeAPI.Types.PaymentMethodDetailsCardWalletApplePay
import StripeAPI.Types.PaymentMethodDetailsCardWalletGooglePay
import StripeAPI.Types.PaymentMethodDetailsCardWalletSamsungPay
import StripeAPI.Types.PaymentMethodDetailsEps
import StripeAPI.Types.PaymentMethodDetailsFpx
import StripeAPI.Types.PaymentMethodDetailsGiropay
import StripeAPI.Types.PaymentMethodDetailsIdeal
import StripeAPI.Types.PaymentMethodDetailsKlarna
import StripeAPI.Types.PaymentMethodDetailsMultibanco
import StripeAPI.Types.PaymentMethodDetailsP24
import StripeAPI.Types.PaymentMethodDetailsSepaDebit
import StripeAPI.Types.PaymentMethodDetailsSofort
import StripeAPI.Types.PaymentMethodDetailsStripeAccount
import StripeAPI.Types.PaymentMethodDetailsWechat
import StripeAPI.Types.PaymentMethodFpx
import StripeAPI.Types.PaymentMethodIdeal
import StripeAPI.Types.PaymentMethodSepaDebit
import StripeAPI.Types.Period
import StripeAPI.Types.PersonRelationship
import StripeAPI.Types.PlanTier
import StripeAPI.Types.PlatformTaxFee
import StripeAPI.Types.RadarValueListItem
import StripeAPI.Types.RadarReviewResourceLocation
import StripeAPI.Types.RadarReviewResourceSession
import StripeAPI.Types.ReportingReportType
import StripeAPI.Types.ReserveTransaction
import StripeAPI.Types.Rule
import StripeAPI.Types.SetupIntentNextActionRedirectToUrl
import StripeAPI.Types.SetupIntentPaymentMethodOptionsCard
import StripeAPI.Types.SigmaScheduledQueryRunError
import StripeAPI.Types.SourceCodeVerificationFlow
import StripeAPI.Types.SourceMandateNotificationBacsDebitData
import StripeAPI.Types.SourceMandateNotificationSepaDebitData
import StripeAPI.Types.SourceOrderItem
import StripeAPI.Types.SourceReceiverFlow
import StripeAPI.Types.SourceRedirectFlow
import StripeAPI.Types.SourceTransactionAchCreditTransferData
import StripeAPI.Types.SourceTransactionChfCreditTransferData
import StripeAPI.Types.SourceTransactionGbpCreditTransferData
import StripeAPI.Types.SourceTransactionPaperCheckData
import StripeAPI.Types.SourceTransactionSepaCreditTransferData
import StripeAPI.Types.SourceTypeAchCreditTransfer
import StripeAPI.Types.SourceTypeAchDebit
import StripeAPI.Types.SourceTypeAlipay
import StripeAPI.Types.SourceTypeBancontact
import StripeAPI.Types.SourceTypeCard
import StripeAPI.Types.SourceTypeCardPresent
import StripeAPI.Types.SourceTypeEps
import StripeAPI.Types.SourceTypeGiropay
import StripeAPI.Types.SourceTypeIdeal
import StripeAPI.Types.SourceTypeKlarna
import StripeAPI.Types.SourceTypeMultibanco
import StripeAPI.Types.SourceTypeP24
import StripeAPI.Types.SourceTypeSepaDebit
import StripeAPI.Types.SourceTypeSofort
import StripeAPI.Types.SourceTypeThreeDSecure
import StripeAPI.Types.SourceTypeWechat
import StripeAPI.Types.StatusTransitions
import StripeAPI.Types.SubscriptionBillingThresholds
import StripeAPI.Types.SubscriptionItemBillingThresholds
import StripeAPI.Types.SubscriptionPendingInvoiceItemInterval
import StripeAPI.Types.SubscriptionScheduleCurrentPhase
import StripeAPI.Types.TaxDeductedAtSource
import StripeAPI.Types.TaxIdVerification
import StripeAPI.Types.TaxRate
import StripeAPI.Types.TerminalConnectionToken
import StripeAPI.Types.TerminalReader
import StripeAPI.Types.ThreeDSecureDetails
import StripeAPI.Types.ThreeDSecureUsage
import StripeAPI.Types.TransferSchedule
import StripeAPI.Types.TransformUsage
import StripeAPI.Types.UsageRecord
import StripeAPI.Types.WebhookEndpoint
import StripeAPI.Types.AccountCapabilityRequirements
import StripeAPI.Types.AccountCardPaymentsSettings
import StripeAPI.Types.AccountPayoutSettings
import StripeAPI.Types.AccountRequirements
import StripeAPI.Types.BalanceAmount
import StripeAPI.Types.BitcoinReceiver
import StripeAPI.Types.ChargeOutcome
import StripeAPI.Types.CountrySpecVerificationFields
import StripeAPI.Types.CreditNoteTaxAmount
import StripeAPI.Types.CustomerAcceptance
import StripeAPI.Types.InvoiceTaxAmount
import StripeAPI.Types.InvoiceThresholdReason
import StripeAPI.Types.IssuingAuthorizationRequest
import StripeAPI.Types.IssuingCardAuthorizationControls
import StripeAPI.Types.IssuingCardShipping
import StripeAPI.Types.IssuingCardholderAddress
import StripeAPI.Types.IssuingCardholderAuthorizationControls
import StripeAPI.Types.MandatePaymentMethodDetails
import StripeAPI.Types.PaymentIntentNextAction
import StripeAPI.Types.PersonRequirements
import StripeAPI.Types.RadarValueList
import StripeAPI.Types.SetupIntentNextAction
import StripeAPI.Types.SetupIntentPaymentMethodOptions
import StripeAPI.Types.Shipping
import StripeAPI.Types.SourceTransaction
import StripeAPI.Types.TerminalLocation
import StripeAPI.Types.UsageRecordSummary
import StripeAPI.Types.Balance
import StripeAPI.Types.CountrySpec
import StripeAPI.Types.CreditNoteLineItem
import StripeAPI.Types.SourceOrder

-- | Defines the data type for the schema account
-- 
-- This is an object representing a Stripe account. You can retrieve it to see
-- properties on the account like its current e-mail address or if the account is
-- enabled yet to make live charges.
-- 
-- Some properties, marked below, are available only to platforms that want to
-- [create and manage Express or Custom accounts](https:\/\/stripe.com\/docs\/connect\/accounts).
data Account = Account {
  -- | business_profile: Business information about the account.
  accountBusinessProfile :: (GHC.Maybe.Maybe AccountBusinessProfile')
  -- | business_type: The business type.
  , accountBusinessType :: (GHC.Maybe.Maybe AccountBusinessType')
  -- | capabilities: 
  , accountCapabilities :: (GHC.Maybe.Maybe AccountCapabilities)
  -- | charges_enabled: Whether the account can create live charges.
  , accountChargesEnabled :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | company: 
  , accountCompany :: (GHC.Maybe.Maybe LegalEntityCompany)
  -- | country: The account\'s country.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , accountCreated :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | default_currency: Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account\'s country](https:\/\/stripe.com\/docs\/payouts).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountDefaultCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | details_submitted: Whether account details have been submitted. Standard accounts cannot receive payouts before this is true.
  , accountDetailsSubmitted :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | email: The primary user\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | external_accounts: External accounts (bank accounts and debit cards) currently attached to this account
  , accountExternalAccounts :: (GHC.Maybe.Maybe AccountExternalAccounts')
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountId :: GHC.Base.String
  -- | individual: This is an object representing a person associated with a Stripe account.
  -- 
  -- Related guide: [Handling Identity Verification with the API](https:\/\/stripe.com\/docs\/connect\/identity-verification-api\#person-information).
  , accountIndividual :: (GHC.Maybe.Maybe Person)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , accountMetadata :: (GHC.Maybe.Maybe AccountMetadata')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , accountObject :: AccountObject'
  -- | payouts_enabled: Whether Stripe can send payouts to this account.
  , accountPayoutsEnabled :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | requirements: 
  , accountRequirements :: (GHC.Maybe.Maybe AccountRequirements)
  -- | settings: Options for customizing how the account functions within Stripe.
  , accountSettings :: (GHC.Maybe.Maybe AccountSettings')
  -- | tos_acceptance: 
  , accountTosAcceptance :: (GHC.Maybe.Maybe AccountTosAcceptance)
  -- | type: The Stripe account type. Can be \`standard\`, \`express\`, or \`custom\`.
  , accountType :: (GHC.Maybe.Maybe AccountType')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Account
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "business_profile" (accountBusinessProfile obj) : (Data.Aeson..=) "business_type" (accountBusinessType obj) : (Data.Aeson..=) "capabilities" (accountCapabilities obj) : (Data.Aeson..=) "charges_enabled" (accountChargesEnabled obj) : (Data.Aeson..=) "company" (accountCompany obj) : (Data.Aeson..=) "country" (accountCountry obj) : (Data.Aeson..=) "created" (accountCreated obj) : (Data.Aeson..=) "default_currency" (accountDefaultCurrency obj) : (Data.Aeson..=) "details_submitted" (accountDetailsSubmitted obj) : (Data.Aeson..=) "email" (accountEmail obj) : (Data.Aeson..=) "external_accounts" (accountExternalAccounts obj) : (Data.Aeson..=) "id" (accountId obj) : (Data.Aeson..=) "individual" (accountIndividual obj) : (Data.Aeson..=) "metadata" (accountMetadata obj) : (Data.Aeson..=) "object" (accountObject obj) : (Data.Aeson..=) "payouts_enabled" (accountPayoutsEnabled obj) : (Data.Aeson..=) "requirements" (accountRequirements obj) : (Data.Aeson..=) "settings" (accountSettings obj) : (Data.Aeson..=) "tos_acceptance" (accountTosAcceptance obj) : (Data.Aeson..=) "type" (accountType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "business_profile" (accountBusinessProfile obj) GHC.Base.<> ((Data.Aeson..=) "business_type" (accountBusinessType obj) GHC.Base.<> ((Data.Aeson..=) "capabilities" (accountCapabilities obj) GHC.Base.<> ((Data.Aeson..=) "charges_enabled" (accountChargesEnabled obj) GHC.Base.<> ((Data.Aeson..=) "company" (accountCompany obj) GHC.Base.<> ((Data.Aeson..=) "country" (accountCountry obj) GHC.Base.<> ((Data.Aeson..=) "created" (accountCreated obj) GHC.Base.<> ((Data.Aeson..=) "default_currency" (accountDefaultCurrency obj) GHC.Base.<> ((Data.Aeson..=) "details_submitted" (accountDetailsSubmitted obj) GHC.Base.<> ((Data.Aeson..=) "email" (accountEmail obj) GHC.Base.<> ((Data.Aeson..=) "external_accounts" (accountExternalAccounts obj) GHC.Base.<> ((Data.Aeson..=) "id" (accountId obj) GHC.Base.<> ((Data.Aeson..=) "individual" (accountIndividual obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (accountMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (accountObject obj) GHC.Base.<> ((Data.Aeson..=) "payouts_enabled" (accountPayoutsEnabled obj) GHC.Base.<> ((Data.Aeson..=) "requirements" (accountRequirements obj) GHC.Base.<> ((Data.Aeson..=) "settings" (accountSettings obj) GHC.Base.<> ((Data.Aeson..=) "tos_acceptance" (accountTosAcceptance obj) GHC.Base.<> (Data.Aeson..=) "type" (accountType obj))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Account
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Account" (\obj -> (((((((((((((((((((GHC.Base.pure Account GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "business_profile")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "business_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "capabilities")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charges_enabled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "company")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "details_submitted")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "external_accounts")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "individual")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payouts_enabled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "requirements")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "settings")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tos_acceptance")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the data type for the schema accountBusiness_profile\'
-- 
-- Business information about the account.
data AccountBusinessProfile' = AccountBusinessProfile' {
  -- | mcc: [The merchant category code for the account](https:\/\/stripe.com\/docs\/connect\/setting-mcc). MCCs are used to classify businesses based on the goods or services they provide.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  accountBusinessProfile'Mcc :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: The customer-facing business name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfile'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | product_description: Internal-only description of the product sold or service provided by the business. It\'s used by Stripe for risk and underwriting purposes.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 40000
  , accountBusinessProfile'ProductDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | support_address: A publicly available mailing address for sending support issues to.
  , accountBusinessProfile'SupportAddress :: (GHC.Maybe.Maybe AccountBusinessProfile'SupportAddress')
  -- | support_email: A publicly available email address for sending support issues to.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfile'SupportEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | support_phone: A publicly available phone number to call with support issues.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfile'SupportPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | support_url: A publicly available website for handling support issues.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfile'SupportUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | url: The business\'s publicly available website.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfile'Url :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountBusinessProfile'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "mcc" (accountBusinessProfile'Mcc obj) : (Data.Aeson..=) "name" (accountBusinessProfile'Name obj) : (Data.Aeson..=) "product_description" (accountBusinessProfile'ProductDescription obj) : (Data.Aeson..=) "support_address" (accountBusinessProfile'SupportAddress obj) : (Data.Aeson..=) "support_email" (accountBusinessProfile'SupportEmail obj) : (Data.Aeson..=) "support_phone" (accountBusinessProfile'SupportPhone obj) : (Data.Aeson..=) "support_url" (accountBusinessProfile'SupportUrl obj) : (Data.Aeson..=) "url" (accountBusinessProfile'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "mcc" (accountBusinessProfile'Mcc obj) GHC.Base.<> ((Data.Aeson..=) "name" (accountBusinessProfile'Name obj) GHC.Base.<> ((Data.Aeson..=) "product_description" (accountBusinessProfile'ProductDescription obj) GHC.Base.<> ((Data.Aeson..=) "support_address" (accountBusinessProfile'SupportAddress obj) GHC.Base.<> ((Data.Aeson..=) "support_email" (accountBusinessProfile'SupportEmail obj) GHC.Base.<> ((Data.Aeson..=) "support_phone" (accountBusinessProfile'SupportPhone obj) GHC.Base.<> ((Data.Aeson..=) "support_url" (accountBusinessProfile'SupportUrl obj) GHC.Base.<> (Data.Aeson..=) "url" (accountBusinessProfile'Url obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON AccountBusinessProfile'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountBusinessProfile'" (\obj -> (((((((GHC.Base.pure AccountBusinessProfile' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "mcc")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "product_description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "url"))
-- | Defines the data type for the schema accountBusiness_profile\'Support_address\'
-- 
-- A publicly available mailing address for sending support issues to.
data AccountBusinessProfile'SupportAddress' = AccountBusinessProfile'SupportAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  accountBusinessProfile'SupportAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfile'SupportAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfile'SupportAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfile'SupportAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfile'SupportAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfile'SupportAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountBusinessProfile'SupportAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (accountBusinessProfile'SupportAddress'City obj) : (Data.Aeson..=) "country" (accountBusinessProfile'SupportAddress'Country obj) : (Data.Aeson..=) "line1" (accountBusinessProfile'SupportAddress'Line1 obj) : (Data.Aeson..=) "line2" (accountBusinessProfile'SupportAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (accountBusinessProfile'SupportAddress'PostalCode obj) : (Data.Aeson..=) "state" (accountBusinessProfile'SupportAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (accountBusinessProfile'SupportAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (accountBusinessProfile'SupportAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (accountBusinessProfile'SupportAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (accountBusinessProfile'SupportAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (accountBusinessProfile'SupportAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (accountBusinessProfile'SupportAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON AccountBusinessProfile'SupportAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountBusinessProfile'SupportAddress'" (\obj -> (((((GHC.Base.pure AccountBusinessProfile'SupportAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the enum schema accountBusiness_type\'
-- 
-- The business type.
data AccountBusinessType'
    = AccountBusinessType'EnumOther Data.Aeson.Types.Internal.Value
    | AccountBusinessType'EnumTyped GHC.Base.String
    | AccountBusinessType'EnumStringCompany
    | AccountBusinessType'EnumStringGovernmentEntity
    | AccountBusinessType'EnumStringIndividual
    | AccountBusinessType'EnumStringNonProfit
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountBusinessType'
    where toJSON (AccountBusinessType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountBusinessType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountBusinessType'EnumStringCompany) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "company"
          toJSON (AccountBusinessType'EnumStringGovernmentEntity) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_entity"
          toJSON (AccountBusinessType'EnumStringIndividual) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "individual"
          toJSON (AccountBusinessType'EnumStringNonProfit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_profit"
instance Data.Aeson.FromJSON AccountBusinessType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "company")
                                          then AccountBusinessType'EnumStringCompany
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_entity")
                                                then AccountBusinessType'EnumStringGovernmentEntity
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "individual")
                                                      then AccountBusinessType'EnumStringIndividual
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_profit")
                                                            then AccountBusinessType'EnumStringNonProfit
                                                            else AccountBusinessType'EnumOther val)
-- | Defines the data type for the schema accountExternal_accounts\'
-- 
-- External accounts (bank accounts and debit cards) currently attached to this account
data AccountExternalAccounts' = AccountExternalAccounts' {
  -- | data: The list contains all external accounts that have been attached to the Stripe account. These may be bank accounts or cards.
  accountExternalAccounts'Data :: ([] AccountExternalAccounts'Data')
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , accountExternalAccounts'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , accountExternalAccounts'Object :: AccountExternalAccounts'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountExternalAccounts'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (accountExternalAccounts'Data obj) : (Data.Aeson..=) "has_more" (accountExternalAccounts'HasMore obj) : (Data.Aeson..=) "object" (accountExternalAccounts'Object obj) : (Data.Aeson..=) "url" (accountExternalAccounts'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (accountExternalAccounts'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (accountExternalAccounts'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (accountExternalAccounts'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (accountExternalAccounts'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON AccountExternalAccounts'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountExternalAccounts'" (\obj -> (((GHC.Base.pure AccountExternalAccounts' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the data type for the schema accountExternal_accounts\'Data\'
-- 
-- 
data AccountExternalAccounts'Data' = AccountExternalAccounts'Data' {
  -- | account: The ID of the account that the bank account is associated with.
  accountExternalAccounts'Data'Account :: (GHC.Maybe.Maybe AccountExternalAccounts'Data'Account'Variants)
  -- | account_holder_name: The name of the person or business that owns the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'AccountHolderName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'AccountHolderType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_city: City\/District\/Suburb\/Town\/Village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'AddressCity :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_country: Billing address country, if provided when creating card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'AddressCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'AddressLine1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'AddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'AddressLine2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_state: State\/County\/Province\/Region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'AddressState :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'AddressZip :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'AddressZipCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | available_payout_methods: A set of available payout methods for this card. Will be either \`[\"standard\"]\` or \`[\"standard\", \"instant\"]\`. Only values from this set should be passed as the \`method\` when creating a transfer.
  , accountExternalAccounts'Data'AvailablePayoutMethods :: (GHC.Maybe.Maybe ([] AccountExternalAccounts'Data'AvailablePayoutMethods'))
  -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'BankName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'Brand :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter ISO code representing the country the bank account is located in.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  , accountExternalAccounts'Data'Currency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The ID of the customer that the bank account is associated with.
  , accountExternalAccounts'Data'Customer :: (GHC.Maybe.Maybe AccountExternalAccounts'Data'Customer'Variants)
  -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'CvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_for_currency: Whether this bank account is the default external account for its currency.
  , accountExternalAccounts'Data'DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'DynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , accountExternalAccounts'Data'ExpMonth :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , accountExternalAccounts'Data'ExpYear :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'Fingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'Funding :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | last4: The last four digits of the bank account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'Last4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , accountExternalAccounts'Data'Metadata :: (GHC.Maybe.Maybe AccountExternalAccounts'Data'Metadata')
  -- | name: Cardholder name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , accountExternalAccounts'Data'Object :: (GHC.Maybe.Maybe AccountExternalAccounts'Data'Object')
  -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
  , accountExternalAccounts'Data'Recipient :: (GHC.Maybe.Maybe AccountExternalAccounts'Data'Recipient'Variants)
  -- | routing_number: The routing transit number for the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'RoutingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
  -- 
  -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'Status :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`amex_express_checkout\`, \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountExternalAccounts'Data'TokenizationMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountExternalAccounts'Data'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (accountExternalAccounts'Data'Account obj) : (Data.Aeson..=) "account_holder_name" (accountExternalAccounts'Data'AccountHolderName obj) : (Data.Aeson..=) "account_holder_type" (accountExternalAccounts'Data'AccountHolderType obj) : (Data.Aeson..=) "address_city" (accountExternalAccounts'Data'AddressCity obj) : (Data.Aeson..=) "address_country" (accountExternalAccounts'Data'AddressCountry obj) : (Data.Aeson..=) "address_line1" (accountExternalAccounts'Data'AddressLine1 obj) : (Data.Aeson..=) "address_line1_check" (accountExternalAccounts'Data'AddressLine1Check obj) : (Data.Aeson..=) "address_line2" (accountExternalAccounts'Data'AddressLine2 obj) : (Data.Aeson..=) "address_state" (accountExternalAccounts'Data'AddressState obj) : (Data.Aeson..=) "address_zip" (accountExternalAccounts'Data'AddressZip obj) : (Data.Aeson..=) "address_zip_check" (accountExternalAccounts'Data'AddressZipCheck obj) : (Data.Aeson..=) "available_payout_methods" (accountExternalAccounts'Data'AvailablePayoutMethods obj) : (Data.Aeson..=) "bank_name" (accountExternalAccounts'Data'BankName obj) : (Data.Aeson..=) "brand" (accountExternalAccounts'Data'Brand obj) : (Data.Aeson..=) "country" (accountExternalAccounts'Data'Country obj) : (Data.Aeson..=) "currency" (accountExternalAccounts'Data'Currency obj) : (Data.Aeson..=) "customer" (accountExternalAccounts'Data'Customer obj) : (Data.Aeson..=) "cvc_check" (accountExternalAccounts'Data'CvcCheck obj) : (Data.Aeson..=) "default_for_currency" (accountExternalAccounts'Data'DefaultForCurrency obj) : (Data.Aeson..=) "dynamic_last4" (accountExternalAccounts'Data'DynamicLast4 obj) : (Data.Aeson..=) "exp_month" (accountExternalAccounts'Data'ExpMonth obj) : (Data.Aeson..=) "exp_year" (accountExternalAccounts'Data'ExpYear obj) : (Data.Aeson..=) "fingerprint" (accountExternalAccounts'Data'Fingerprint obj) : (Data.Aeson..=) "funding" (accountExternalAccounts'Data'Funding obj) : (Data.Aeson..=) "id" (accountExternalAccounts'Data'Id obj) : (Data.Aeson..=) "last4" (accountExternalAccounts'Data'Last4 obj) : (Data.Aeson..=) "metadata" (accountExternalAccounts'Data'Metadata obj) : (Data.Aeson..=) "name" (accountExternalAccounts'Data'Name obj) : (Data.Aeson..=) "object" (accountExternalAccounts'Data'Object obj) : (Data.Aeson..=) "recipient" (accountExternalAccounts'Data'Recipient obj) : (Data.Aeson..=) "routing_number" (accountExternalAccounts'Data'RoutingNumber obj) : (Data.Aeson..=) "status" (accountExternalAccounts'Data'Status obj) : (Data.Aeson..=) "tokenization_method" (accountExternalAccounts'Data'TokenizationMethod obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (accountExternalAccounts'Data'Account obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_name" (accountExternalAccounts'Data'AccountHolderName obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_type" (accountExternalAccounts'Data'AccountHolderType obj) GHC.Base.<> ((Data.Aeson..=) "address_city" (accountExternalAccounts'Data'AddressCity obj) GHC.Base.<> ((Data.Aeson..=) "address_country" (accountExternalAccounts'Data'AddressCountry obj) GHC.Base.<> ((Data.Aeson..=) "address_line1" (accountExternalAccounts'Data'AddressLine1 obj) GHC.Base.<> ((Data.Aeson..=) "address_line1_check" (accountExternalAccounts'Data'AddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_line2" (accountExternalAccounts'Data'AddressLine2 obj) GHC.Base.<> ((Data.Aeson..=) "address_state" (accountExternalAccounts'Data'AddressState obj) GHC.Base.<> ((Data.Aeson..=) "address_zip" (accountExternalAccounts'Data'AddressZip obj) GHC.Base.<> ((Data.Aeson..=) "address_zip_check" (accountExternalAccounts'Data'AddressZipCheck obj) GHC.Base.<> ((Data.Aeson..=) "available_payout_methods" (accountExternalAccounts'Data'AvailablePayoutMethods obj) GHC.Base.<> ((Data.Aeson..=) "bank_name" (accountExternalAccounts'Data'BankName obj) GHC.Base.<> ((Data.Aeson..=) "brand" (accountExternalAccounts'Data'Brand obj) GHC.Base.<> ((Data.Aeson..=) "country" (accountExternalAccounts'Data'Country obj) GHC.Base.<> ((Data.Aeson..=) "currency" (accountExternalAccounts'Data'Currency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (accountExternalAccounts'Data'Customer obj) GHC.Base.<> ((Data.Aeson..=) "cvc_check" (accountExternalAccounts'Data'CvcCheck obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (accountExternalAccounts'Data'DefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (accountExternalAccounts'Data'DynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (accountExternalAccounts'Data'ExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (accountExternalAccounts'Data'ExpYear obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (accountExternalAccounts'Data'Fingerprint obj) GHC.Base.<> ((Data.Aeson..=) "funding" (accountExternalAccounts'Data'Funding obj) GHC.Base.<> ((Data.Aeson..=) "id" (accountExternalAccounts'Data'Id obj) GHC.Base.<> ((Data.Aeson..=) "last4" (accountExternalAccounts'Data'Last4 obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (accountExternalAccounts'Data'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "name" (accountExternalAccounts'Data'Name obj) GHC.Base.<> ((Data.Aeson..=) "object" (accountExternalAccounts'Data'Object obj) GHC.Base.<> ((Data.Aeson..=) "recipient" (accountExternalAccounts'Data'Recipient obj) GHC.Base.<> ((Data.Aeson..=) "routing_number" (accountExternalAccounts'Data'RoutingNumber obj) GHC.Base.<> ((Data.Aeson..=) "status" (accountExternalAccounts'Data'Status obj) GHC.Base.<> (Data.Aeson..=) "tokenization_method" (accountExternalAccounts'Data'TokenizationMethod obj)))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON AccountExternalAccounts'Data'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountExternalAccounts'Data'" (\obj -> ((((((((((((((((((((((((((((((((GHC.Base.pure AccountExternalAccounts'Data' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_payout_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "recipient")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tokenization_method"))
-- | Define the one-of schema accountExternal_accounts\'Data\'Account\'
-- 
-- The ID of the account that the bank account is associated with.
data AccountExternalAccounts'Data'Account'Variants
    = AccountExternalAccounts'Data'Account'Account Account
    | AccountExternalAccounts'Data'Account'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON AccountExternalAccounts'Data'Account'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON AccountExternalAccounts'Data'Account'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema accountExternal_accounts\'Data\'Available_payout_methods\'
-- 
-- 
data AccountExternalAccounts'Data'AvailablePayoutMethods'
    = AccountExternalAccounts'Data'AvailablePayoutMethods'EnumOther Data.Aeson.Types.Internal.Value
    | AccountExternalAccounts'Data'AvailablePayoutMethods'EnumTyped GHC.Base.String
    | AccountExternalAccounts'Data'AvailablePayoutMethods'EnumStringInstant
    | AccountExternalAccounts'Data'AvailablePayoutMethods'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountExternalAccounts'Data'AvailablePayoutMethods'
    where toJSON (AccountExternalAccounts'Data'AvailablePayoutMethods'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountExternalAccounts'Data'AvailablePayoutMethods'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountExternalAccounts'Data'AvailablePayoutMethods'EnumStringInstant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant"
          toJSON (AccountExternalAccounts'Data'AvailablePayoutMethods'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON AccountExternalAccounts'Data'AvailablePayoutMethods'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant")
                                          then AccountExternalAccounts'Data'AvailablePayoutMethods'EnumStringInstant
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                then AccountExternalAccounts'Data'AvailablePayoutMethods'EnumStringStandard
                                                else AccountExternalAccounts'Data'AvailablePayoutMethods'EnumOther val)
-- | Define the one-of schema accountExternal_accounts\'Data\'Customer\'
-- 
-- The ID of the customer that the bank account is associated with.
data AccountExternalAccounts'Data'Customer'Variants
    = AccountExternalAccounts'Data'Customer'Customer Customer
    | AccountExternalAccounts'Data'Customer'DeletedCustomer DeletedCustomer
    | AccountExternalAccounts'Data'Customer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON AccountExternalAccounts'Data'Customer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON AccountExternalAccounts'Data'Customer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema accountExternal_accounts\'Data\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data AccountExternalAccounts'Data'Metadata' = AccountExternalAccounts'Data'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountExternalAccounts'Data'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON AccountExternalAccounts'Data'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountExternalAccounts'Data'Metadata'" (\obj -> GHC.Base.pure AccountExternalAccounts'Data'Metadata')
-- | Defines the enum schema accountExternal_accounts\'Data\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data AccountExternalAccounts'Data'Object'
    = AccountExternalAccounts'Data'Object'EnumOther Data.Aeson.Types.Internal.Value
    | AccountExternalAccounts'Data'Object'EnumTyped GHC.Base.String
    | AccountExternalAccounts'Data'Object'EnumStringBankAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountExternalAccounts'Data'Object'
    where toJSON (AccountExternalAccounts'Data'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountExternalAccounts'Data'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountExternalAccounts'Data'Object'EnumStringBankAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account"
instance Data.Aeson.FromJSON AccountExternalAccounts'Data'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account")
                                          then AccountExternalAccounts'Data'Object'EnumStringBankAccount
                                          else AccountExternalAccounts'Data'Object'EnumOther val)
-- | Define the one-of schema accountExternal_accounts\'Data\'Recipient\'
-- 
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data AccountExternalAccounts'Data'Recipient'Variants
    = AccountExternalAccounts'Data'Recipient'Recipient Recipient
    | AccountExternalAccounts'Data'Recipient'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON AccountExternalAccounts'Data'Recipient'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON AccountExternalAccounts'Data'Recipient'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema accountExternal_accounts\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data AccountExternalAccounts'Object'
    = AccountExternalAccounts'Object'EnumOther Data.Aeson.Types.Internal.Value
    | AccountExternalAccounts'Object'EnumTyped GHC.Base.String
    | AccountExternalAccounts'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountExternalAccounts'Object'
    where toJSON (AccountExternalAccounts'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountExternalAccounts'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountExternalAccounts'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON AccountExternalAccounts'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then AccountExternalAccounts'Object'EnumStringList
                                          else AccountExternalAccounts'Object'EnumOther val)
-- | Defines the data type for the schema accountMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data AccountMetadata' = AccountMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON AccountMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountMetadata'" (\obj -> GHC.Base.pure AccountMetadata')
-- | Defines the enum schema accountObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data AccountObject'
    = AccountObject'EnumOther Data.Aeson.Types.Internal.Value
    | AccountObject'EnumTyped GHC.Base.String
    | AccountObject'EnumStringAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountObject'
    where toJSON (AccountObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountObject'EnumStringAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "account"
instance Data.Aeson.FromJSON AccountObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "account")
                                          then AccountObject'EnumStringAccount
                                          else AccountObject'EnumOther val)
-- | Defines the data type for the schema accountSettings\'
-- 
-- Options for customizing how the account functions within Stripe.
data AccountSettings' = AccountSettings' {
  -- | branding: 
  accountSettings'Branding :: (GHC.Maybe.Maybe AccountBrandingSettings)
  -- | card_payments: 
  , accountSettings'CardPayments :: (GHC.Maybe.Maybe AccountCardPaymentsSettings)
  -- | dashboard: 
  , accountSettings'Dashboard :: (GHC.Maybe.Maybe AccountDashboardSettings)
  -- | payments: 
  , accountSettings'Payments :: (GHC.Maybe.Maybe AccountPaymentsSettings)
  -- | payouts: 
  , accountSettings'Payouts :: (GHC.Maybe.Maybe AccountPayoutSettings)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountSettings'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "branding" (accountSettings'Branding obj) : (Data.Aeson..=) "card_payments" (accountSettings'CardPayments obj) : (Data.Aeson..=) "dashboard" (accountSettings'Dashboard obj) : (Data.Aeson..=) "payments" (accountSettings'Payments obj) : (Data.Aeson..=) "payouts" (accountSettings'Payouts obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "branding" (accountSettings'Branding obj) GHC.Base.<> ((Data.Aeson..=) "card_payments" (accountSettings'CardPayments obj) GHC.Base.<> ((Data.Aeson..=) "dashboard" (accountSettings'Dashboard obj) GHC.Base.<> ((Data.Aeson..=) "payments" (accountSettings'Payments obj) GHC.Base.<> (Data.Aeson..=) "payouts" (accountSettings'Payouts obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON AccountSettings'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountSettings'" (\obj -> ((((GHC.Base.pure AccountSettings' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "branding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_payments")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dashboard")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payments")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payouts"))
-- | Defines the enum schema accountType\'
-- 
-- The Stripe account type. Can be \`standard\`, \`express\`, or \`custom\`.
data AccountType'
    = AccountType'EnumOther Data.Aeson.Types.Internal.Value
    | AccountType'EnumTyped GHC.Base.String
    | AccountType'EnumStringCustom
    | AccountType'EnumStringExpress
    | AccountType'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountType'
    where toJSON (AccountType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AccountType'EnumStringCustom) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "custom"
          toJSON (AccountType'EnumStringExpress) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "express"
          toJSON (AccountType'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON AccountType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "custom")
                                          then AccountType'EnumStringCustom
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "express")
                                                then AccountType'EnumStringExpress
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                      then AccountType'EnumStringStandard
                                                      else AccountType'EnumOther val)
-- | Defines the data type for the schema account_branding_settings
-- 
-- 
data AccountBrandingSettings = AccountBrandingSettings {
  -- | icon: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) An icon for the account. Must be square and at least 128px x 128px.
  accountBrandingSettingsIcon :: (GHC.Maybe.Maybe AccountBrandingSettingsIcon'Variants)
  -- | logo: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) A logo for the account that will be used in Checkout instead of the icon and without the account\'s name next to it if provided. Must be at least 128px x 128px.
  , accountBrandingSettingsLogo :: (GHC.Maybe.Maybe AccountBrandingSettingsLogo'Variants)
  -- | primary_color: A CSS hex color value representing the primary branding color for this account
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBrandingSettingsPrimaryColor :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountBrandingSettings
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "icon" (accountBrandingSettingsIcon obj) : (Data.Aeson..=) "logo" (accountBrandingSettingsLogo obj) : (Data.Aeson..=) "primary_color" (accountBrandingSettingsPrimaryColor obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "icon" (accountBrandingSettingsIcon obj) GHC.Base.<> ((Data.Aeson..=) "logo" (accountBrandingSettingsLogo obj) GHC.Base.<> (Data.Aeson..=) "primary_color" (accountBrandingSettingsPrimaryColor obj)))
instance Data.Aeson.Types.FromJSON.FromJSON AccountBrandingSettings
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountBrandingSettings" (\obj -> ((GHC.Base.pure AccountBrandingSettings GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "icon")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "logo")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "primary_color"))
-- | Define the one-of schema account_branding_settingsIcon\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) An icon for the account. Must be square and at least 128px x 128px.
data AccountBrandingSettingsIcon'Variants
    = AccountBrandingSettingsIcon'File File
    | AccountBrandingSettingsIcon'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON AccountBrandingSettingsIcon'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON AccountBrandingSettingsIcon'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema account_branding_settingsLogo\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) A logo for the account that will be used in Checkout instead of the icon and without the account\'s name next to it if provided. Must be at least 128px x 128px.
data AccountBrandingSettingsLogo'Variants
    = AccountBrandingSettingsLogo'File File
    | AccountBrandingSettingsLogo'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON AccountBrandingSettingsLogo'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON AccountBrandingSettingsLogo'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema account_business_profile
-- 
-- 
data AccountBusinessProfile = AccountBusinessProfile {
  -- | mcc: [The merchant category code for the account](https:\/\/stripe.com\/docs\/connect\/setting-mcc). MCCs are used to classify businesses based on the goods or services they provide.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  accountBusinessProfileMcc :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: The customer-facing business name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfileName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | product_description: Internal-only description of the product sold or service provided by the business. It\'s used by Stripe for risk and underwriting purposes.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 40000
  , accountBusinessProfileProductDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | support_address: A publicly available mailing address for sending support issues to.
  , accountBusinessProfileSupportAddress :: (GHC.Maybe.Maybe AccountBusinessProfileSupportAddress')
  -- | support_email: A publicly available email address for sending support issues to.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfileSupportEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | support_phone: A publicly available phone number to call with support issues.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfileSupportPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | support_url: A publicly available website for handling support issues.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfileSupportUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | url: The business\'s publicly available website.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfileUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountBusinessProfile
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "mcc" (accountBusinessProfileMcc obj) : (Data.Aeson..=) "name" (accountBusinessProfileName obj) : (Data.Aeson..=) "product_description" (accountBusinessProfileProductDescription obj) : (Data.Aeson..=) "support_address" (accountBusinessProfileSupportAddress obj) : (Data.Aeson..=) "support_email" (accountBusinessProfileSupportEmail obj) : (Data.Aeson..=) "support_phone" (accountBusinessProfileSupportPhone obj) : (Data.Aeson..=) "support_url" (accountBusinessProfileSupportUrl obj) : (Data.Aeson..=) "url" (accountBusinessProfileUrl obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "mcc" (accountBusinessProfileMcc obj) GHC.Base.<> ((Data.Aeson..=) "name" (accountBusinessProfileName obj) GHC.Base.<> ((Data.Aeson..=) "product_description" (accountBusinessProfileProductDescription obj) GHC.Base.<> ((Data.Aeson..=) "support_address" (accountBusinessProfileSupportAddress obj) GHC.Base.<> ((Data.Aeson..=) "support_email" (accountBusinessProfileSupportEmail obj) GHC.Base.<> ((Data.Aeson..=) "support_phone" (accountBusinessProfileSupportPhone obj) GHC.Base.<> ((Data.Aeson..=) "support_url" (accountBusinessProfileSupportUrl obj) GHC.Base.<> (Data.Aeson..=) "url" (accountBusinessProfileUrl obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON AccountBusinessProfile
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountBusinessProfile" (\obj -> (((((((GHC.Base.pure AccountBusinessProfile GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "mcc")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "product_description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "url"))
-- | Defines the data type for the schema account_business_profileSupport_address\'
-- 
-- A publicly available mailing address for sending support issues to.
data AccountBusinessProfileSupportAddress' = AccountBusinessProfileSupportAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  accountBusinessProfileSupportAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfileSupportAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfileSupportAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfileSupportAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfileSupportAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , accountBusinessProfileSupportAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountBusinessProfileSupportAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (accountBusinessProfileSupportAddress'City obj) : (Data.Aeson..=) "country" (accountBusinessProfileSupportAddress'Country obj) : (Data.Aeson..=) "line1" (accountBusinessProfileSupportAddress'Line1 obj) : (Data.Aeson..=) "line2" (accountBusinessProfileSupportAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (accountBusinessProfileSupportAddress'PostalCode obj) : (Data.Aeson..=) "state" (accountBusinessProfileSupportAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (accountBusinessProfileSupportAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (accountBusinessProfileSupportAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (accountBusinessProfileSupportAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (accountBusinessProfileSupportAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (accountBusinessProfileSupportAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (accountBusinessProfileSupportAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON AccountBusinessProfileSupportAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountBusinessProfileSupportAddress'" (\obj -> (((((GHC.Base.pure AccountBusinessProfileSupportAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema account_settings
-- 
-- 
data AccountSettings = AccountSettings {
  -- | branding: 
  accountSettingsBranding :: AccountBrandingSettings
  -- | card_payments: 
  , accountSettingsCardPayments :: AccountCardPaymentsSettings
  -- | dashboard: 
  , accountSettingsDashboard :: AccountDashboardSettings
  -- | payments: 
  , accountSettingsPayments :: AccountPaymentsSettings
  -- | payouts: 
  , accountSettingsPayouts :: (GHC.Maybe.Maybe AccountPayoutSettings)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AccountSettings
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "branding" (accountSettingsBranding obj) : (Data.Aeson..=) "card_payments" (accountSettingsCardPayments obj) : (Data.Aeson..=) "dashboard" (accountSettingsDashboard obj) : (Data.Aeson..=) "payments" (accountSettingsPayments obj) : (Data.Aeson..=) "payouts" (accountSettingsPayouts obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "branding" (accountSettingsBranding obj) GHC.Base.<> ((Data.Aeson..=) "card_payments" (accountSettingsCardPayments obj) GHC.Base.<> ((Data.Aeson..=) "dashboard" (accountSettingsDashboard obj) GHC.Base.<> ((Data.Aeson..=) "payments" (accountSettingsPayments obj) GHC.Base.<> (Data.Aeson..=) "payouts" (accountSettingsPayouts obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON AccountSettings
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AccountSettings" (\obj -> ((((GHC.Base.pure AccountSettings GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "branding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "card_payments")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "dashboard")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "payments")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payouts"))
-- | Defines the data type for the schema alipay_account
-- 
-- 
data AlipayAccount = AlipayAccount {
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  alipayAccountCreated :: GHC.Integer.Type.Integer
  -- | customer: The ID of the customer associated with this Alipay Account.
  , alipayAccountCustomer :: (GHC.Maybe.Maybe AlipayAccountCustomer'Variants)
  -- | fingerprint: Uniquely identifies the account and will be the same across all Alipay account objects that are linked to the same Alipay account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , alipayAccountFingerprint :: GHC.Base.String
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , alipayAccountId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , alipayAccountLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , alipayAccountMetadata :: (GHC.Maybe.Maybe AlipayAccountMetadata')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , alipayAccountObject :: AlipayAccountObject'
  -- | payment_amount: If the Alipay account object is not reusable, the exact amount that you can create a charge for.
  , alipayAccountPaymentAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | payment_currency: If the Alipay account object is not reusable, the exact currency that you can create a charge for.
  , alipayAccountPaymentCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | reusable: True if you can create multiple payments using this account. If the account is reusable, then you can freely choose the amount of each payment.
  , alipayAccountReusable :: GHC.Types.Bool
  -- | used: Whether this Alipay account object has ever been used for a payment.
  , alipayAccountUsed :: GHC.Types.Bool
  -- | username: The username for the Alipay account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , alipayAccountUsername :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AlipayAccount
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "created" (alipayAccountCreated obj) : (Data.Aeson..=) "customer" (alipayAccountCustomer obj) : (Data.Aeson..=) "fingerprint" (alipayAccountFingerprint obj) : (Data.Aeson..=) "id" (alipayAccountId obj) : (Data.Aeson..=) "livemode" (alipayAccountLivemode obj) : (Data.Aeson..=) "metadata" (alipayAccountMetadata obj) : (Data.Aeson..=) "object" (alipayAccountObject obj) : (Data.Aeson..=) "payment_amount" (alipayAccountPaymentAmount obj) : (Data.Aeson..=) "payment_currency" (alipayAccountPaymentCurrency obj) : (Data.Aeson..=) "reusable" (alipayAccountReusable obj) : (Data.Aeson..=) "used" (alipayAccountUsed obj) : (Data.Aeson..=) "username" (alipayAccountUsername obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "created" (alipayAccountCreated obj) GHC.Base.<> ((Data.Aeson..=) "customer" (alipayAccountCustomer obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (alipayAccountFingerprint obj) GHC.Base.<> ((Data.Aeson..=) "id" (alipayAccountId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (alipayAccountLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (alipayAccountMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (alipayAccountObject obj) GHC.Base.<> ((Data.Aeson..=) "payment_amount" (alipayAccountPaymentAmount obj) GHC.Base.<> ((Data.Aeson..=) "payment_currency" (alipayAccountPaymentCurrency obj) GHC.Base.<> ((Data.Aeson..=) "reusable" (alipayAccountReusable obj) GHC.Base.<> ((Data.Aeson..=) "used" (alipayAccountUsed obj) GHC.Base.<> (Data.Aeson..=) "username" (alipayAccountUsername obj))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON AlipayAccount
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AlipayAccount" (\obj -> (((((((((((GHC.Base.pure AlipayAccount GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "reusable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "used")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "username"))
-- | Define the one-of schema alipay_accountCustomer\'
-- 
-- The ID of the customer associated with this Alipay Account.
data AlipayAccountCustomer'Variants
    = AlipayAccountCustomer'Customer Customer
    | AlipayAccountCustomer'DeletedCustomer DeletedCustomer
    | AlipayAccountCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON AlipayAccountCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON AlipayAccountCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema alipay_accountMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data AlipayAccountMetadata' = AlipayAccountMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON AlipayAccountMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON AlipayAccountMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "AlipayAccountMetadata'" (\obj -> GHC.Base.pure AlipayAccountMetadata')
-- | Defines the enum schema alipay_accountObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data AlipayAccountObject'
    = AlipayAccountObject'EnumOther Data.Aeson.Types.Internal.Value
    | AlipayAccountObject'EnumTyped GHC.Base.String
    | AlipayAccountObject'EnumStringAlipayAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON AlipayAccountObject'
    where toJSON (AlipayAccountObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AlipayAccountObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (AlipayAccountObject'EnumStringAlipayAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay_account"
instance Data.Aeson.FromJSON AlipayAccountObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay_account")
                                          then AlipayAccountObject'EnumStringAlipayAccount
                                          else AlipayAccountObject'EnumOther val)
-- | Defines the data type for the schema api_errors
-- 
-- 
data ApiErrors = ApiErrors {
  -- | charge: For card errors, the ID of the failed charge.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  apiErrorsCharge :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | code: For some errors that could be handled programmatically, a short string indicating the [error code](https:\/\/stripe.com\/docs\/error-codes) reported.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | decline_code: For card errors resulting from a card issuer decline, a short string indicating the [card issuer\'s reason for the decline](https:\/\/stripe.com\/docs\/declines\#issuer-declines) if they provide one.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsDeclineCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | doc_url: A URL to more information about the [error code](https:\/\/stripe.com\/docs\/error-codes) reported.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsDocUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | message: A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 40000
  , apiErrorsMessage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | param: If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsParam :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | payment_intent: A PaymentIntent guides you through the process of collecting a payment from your customer.
  -- We recommend that you create exactly one PaymentIntent for each order or
  -- customer session in your system. You can reference the PaymentIntent later to
  -- see the history of payment attempts for a particular session.
  -- 
  -- A PaymentIntent transitions through
  -- [multiple statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses)
  -- throughout its lifetime as it interfaces with Stripe.js to perform
  -- authentication flows and ultimately creates at most one successful charge.
  -- 
  -- Related guide: [Payment Intents API](https:\/\/stripe.com\/docs\/payments\/payment-intents\/creating-payment-intents).
  , apiErrorsPaymentIntent :: (GHC.Maybe.Maybe PaymentIntent)
  -- | payment_method: PaymentMethod objects represent your customer\'s payment instruments.
  -- They can be used with [PaymentIntents](https:\/\/stripe.com\/docs\/payments\/payment-intents) to collect payments or saved to
  -- Customer objects to store instrument details for future payments.
  -- 
  -- Related guides: [Payment Methods](https:\/\/stripe.com\/docs\/payments\/payment-methods) and [More Payment Scenarios](https:\/\/stripe.com\/docs\/payments\/more-payment-scenarios).
  , apiErrorsPaymentMethod :: (GHC.Maybe.Maybe PaymentMethod)
  -- | setup_intent: A SetupIntent guides you through the process of setting up a customer\'s payment credentials for future payments.
  -- For example, you could use a SetupIntent to set up your customer\'s card without immediately collecting a payment.
  -- Later, you can use [PaymentIntents](https:\/\/stripe.com\/docs\/api\#payment_intents) to drive the payment flow.
  -- 
  -- Create a SetupIntent as soon as you\'re ready to collect your customer\'s payment credentials.
  -- Do not maintain long-lived, unconfirmed SetupIntents as they may no longer be valid.
  -- The SetupIntent then transitions through multiple [statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses) as it guides
  -- you through the setup process.
  -- 
  -- Successful SetupIntents result in payment credentials that are optimized for future payments.
  -- For example, cardholders in [certain regions](\/guides\/strong-customer-authentication) may need to be run through
  -- [Strong Customer Authentication](https:\/\/stripe.com\/docs\/strong-customer-authentication) at the time of payment method collection
  -- in order to streamline later [off-session payments](https:\/\/stripe.com\/docs\/payments\/setup-intents).
  -- 
  -- By using SetupIntents, you ensure that your customers experience the minimum set of required friction,
  -- even as regulations change over time.
  , apiErrorsSetupIntent :: (GHC.Maybe.Maybe SetupIntent)
  -- | source: The source object for errors returned on a request involving a source.
  , apiErrorsSource :: (GHC.Maybe.Maybe ApiErrorsSource')
  -- | type: The type of error returned. One of \`api_connection_error\`, \`api_error\`, \`authentication_error\`, \`card_error\`, \`idempotency_error\`, \`invalid_request_error\`, or \`rate_limit_error\`
  , apiErrorsType :: ApiErrorsType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApiErrors
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "charge" (apiErrorsCharge obj) : (Data.Aeson..=) "code" (apiErrorsCode obj) : (Data.Aeson..=) "decline_code" (apiErrorsDeclineCode obj) : (Data.Aeson..=) "doc_url" (apiErrorsDocUrl obj) : (Data.Aeson..=) "message" (apiErrorsMessage obj) : (Data.Aeson..=) "param" (apiErrorsParam obj) : (Data.Aeson..=) "payment_intent" (apiErrorsPaymentIntent obj) : (Data.Aeson..=) "payment_method" (apiErrorsPaymentMethod obj) : (Data.Aeson..=) "setup_intent" (apiErrorsSetupIntent obj) : (Data.Aeson..=) "source" (apiErrorsSource obj) : (Data.Aeson..=) "type" (apiErrorsType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "charge" (apiErrorsCharge obj) GHC.Base.<> ((Data.Aeson..=) "code" (apiErrorsCode obj) GHC.Base.<> ((Data.Aeson..=) "decline_code" (apiErrorsDeclineCode obj) GHC.Base.<> ((Data.Aeson..=) "doc_url" (apiErrorsDocUrl obj) GHC.Base.<> ((Data.Aeson..=) "message" (apiErrorsMessage obj) GHC.Base.<> ((Data.Aeson..=) "param" (apiErrorsParam obj) GHC.Base.<> ((Data.Aeson..=) "payment_intent" (apiErrorsPaymentIntent obj) GHC.Base.<> ((Data.Aeson..=) "payment_method" (apiErrorsPaymentMethod obj) GHC.Base.<> ((Data.Aeson..=) "setup_intent" (apiErrorsSetupIntent obj) GHC.Base.<> ((Data.Aeson..=) "source" (apiErrorsSource obj) GHC.Base.<> (Data.Aeson..=) "type" (apiErrorsType obj)))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON ApiErrors
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ApiErrors" (\obj -> ((((((((((GHC.Base.pure ApiErrors GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "decline_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "doc_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "message")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "param")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "setup_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Defines the data type for the schema api_errorsSource\'
-- 
-- The source object for errors returned on a request involving a source.
data ApiErrorsSource' = ApiErrorsSource' {
  -- | account: The ID of the account that the bank account is associated with.
  apiErrorsSource'Account :: (GHC.Maybe.Maybe ApiErrorsSource'Account'Variants)
  -- | account_holder_name: The name of the person or business that owns the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'AccountHolderName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'AccountHolderType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ach_credit_transfer
  , apiErrorsSource'AchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer)
  -- | ach_debit
  , apiErrorsSource'AchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit)
  -- | address_city: City\/District\/Suburb\/Town\/Village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'AddressCity :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_country: Billing address country, if provided when creating card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'AddressCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'AddressLine1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'AddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'AddressLine2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_state: State\/County\/Province\/Region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'AddressState :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'AddressZip :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'AddressZipCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | alipay
  , apiErrorsSource'Alipay :: (GHC.Maybe.Maybe SourceTypeAlipay)
  -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for \`single_use\` sources.
  , apiErrorsSource'Amount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | available_payout_methods: A set of available payout methods for this card. Will be either \`[\"standard\"]\` or \`[\"standard\", \"instant\"]\`. Only values from this set should be passed as the \`method\` when creating a transfer.
  , apiErrorsSource'AvailablePayoutMethods :: (GHC.Maybe.Maybe ([] ApiErrorsSource'AvailablePayoutMethods'))
  -- | bancontact
  , apiErrorsSource'Bancontact :: (GHC.Maybe.Maybe SourceTypeBancontact)
  -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'BankName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Brand :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | card
  , apiErrorsSource'Card :: (GHC.Maybe.Maybe SourceTypeCard)
  -- | card_present
  , apiErrorsSource'CardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent)
  -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'ClientSecret :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | code_verification: 
  , apiErrorsSource'CodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow)
  -- | country: Two-letter ISO code representing the country the bank account is located in.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , apiErrorsSource'Created :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  , apiErrorsSource'Currency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The ID of the customer that the bank account is associated with.
  , apiErrorsSource'Customer :: (GHC.Maybe.Maybe ApiErrorsSource'Customer'Variants)
  -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'CvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_for_currency: Whether this bank account is the default external account for its currency.
  , apiErrorsSource'DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'DynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | eps
  , apiErrorsSource'Eps :: (GHC.Maybe.Maybe SourceTypeEps)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , apiErrorsSource'ExpMonth :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , apiErrorsSource'ExpYear :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Fingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | flow: The authentication \`flow\` of the source. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Flow :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Funding :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | giropay
  , apiErrorsSource'Giropay :: (GHC.Maybe.Maybe SourceTypeGiropay)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ideal
  , apiErrorsSource'Ideal :: (GHC.Maybe.Maybe SourceTypeIdeal)
  -- | klarna
  , apiErrorsSource'Klarna :: (GHC.Maybe.Maybe SourceTypeKlarna)
  -- | last4: The last four digits of the bank account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Last4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , apiErrorsSource'Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , apiErrorsSource'Metadata :: (GHC.Maybe.Maybe ApiErrorsSource'Metadata')
  -- | multibanco
  , apiErrorsSource'Multibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco)
  -- | name: Cardholder name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , apiErrorsSource'Object :: (GHC.Maybe.Maybe ApiErrorsSource'Object')
  -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
  , apiErrorsSource'Owner :: (GHC.Maybe.Maybe ApiErrorsSource'Owner')
  -- | p24
  , apiErrorsSource'P24 :: (GHC.Maybe.Maybe SourceTypeP24)
  -- | receiver: 
  , apiErrorsSource'Receiver :: (GHC.Maybe.Maybe SourceReceiverFlow)
  -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
  , apiErrorsSource'Recipient :: (GHC.Maybe.Maybe ApiErrorsSource'Recipient'Variants)
  -- | redirect: 
  , apiErrorsSource'Redirect :: (GHC.Maybe.Maybe SourceRedirectFlow)
  -- | routing_number: The routing transit number for the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'RoutingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | sepa_debit
  , apiErrorsSource'SepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit)
  -- | sofort
  , apiErrorsSource'Sofort :: (GHC.Maybe.Maybe SourceTypeSofort)
  -- | source_order: 
  , apiErrorsSource'SourceOrder :: (GHC.Maybe.Maybe SourceOrder)
  -- | statement_descriptor: Extra information about a source. This will appear on your customer\'s statement every time you charge the source.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'StatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
  -- 
  -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Status :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | three_d_secure
  , apiErrorsSource'ThreeDSecure :: (GHC.Maybe.Maybe SourceTypeThreeDSecure)
  -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`amex_express_checkout\`, \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'TokenizationMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | type: The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
  , apiErrorsSource'Type :: (GHC.Maybe.Maybe ApiErrorsSource'Type')
  -- | usage: Either \`reusable\` or \`single_use\`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Usage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | wechat
  , apiErrorsSource'Wechat :: (GHC.Maybe.Maybe SourceTypeWechat)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApiErrorsSource'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (apiErrorsSource'Account obj) : (Data.Aeson..=) "account_holder_name" (apiErrorsSource'AccountHolderName obj) : (Data.Aeson..=) "account_holder_type" (apiErrorsSource'AccountHolderType obj) : (Data.Aeson..=) "ach_credit_transfer" (apiErrorsSource'AchCreditTransfer obj) : (Data.Aeson..=) "ach_debit" (apiErrorsSource'AchDebit obj) : (Data.Aeson..=) "address_city" (apiErrorsSource'AddressCity obj) : (Data.Aeson..=) "address_country" (apiErrorsSource'AddressCountry obj) : (Data.Aeson..=) "address_line1" (apiErrorsSource'AddressLine1 obj) : (Data.Aeson..=) "address_line1_check" (apiErrorsSource'AddressLine1Check obj) : (Data.Aeson..=) "address_line2" (apiErrorsSource'AddressLine2 obj) : (Data.Aeson..=) "address_state" (apiErrorsSource'AddressState obj) : (Data.Aeson..=) "address_zip" (apiErrorsSource'AddressZip obj) : (Data.Aeson..=) "address_zip_check" (apiErrorsSource'AddressZipCheck obj) : (Data.Aeson..=) "alipay" (apiErrorsSource'Alipay obj) : (Data.Aeson..=) "amount" (apiErrorsSource'Amount obj) : (Data.Aeson..=) "available_payout_methods" (apiErrorsSource'AvailablePayoutMethods obj) : (Data.Aeson..=) "bancontact" (apiErrorsSource'Bancontact obj) : (Data.Aeson..=) "bank_name" (apiErrorsSource'BankName obj) : (Data.Aeson..=) "brand" (apiErrorsSource'Brand obj) : (Data.Aeson..=) "card" (apiErrorsSource'Card obj) : (Data.Aeson..=) "card_present" (apiErrorsSource'CardPresent obj) : (Data.Aeson..=) "client_secret" (apiErrorsSource'ClientSecret obj) : (Data.Aeson..=) "code_verification" (apiErrorsSource'CodeVerification obj) : (Data.Aeson..=) "country" (apiErrorsSource'Country obj) : (Data.Aeson..=) "created" (apiErrorsSource'Created obj) : (Data.Aeson..=) "currency" (apiErrorsSource'Currency obj) : (Data.Aeson..=) "customer" (apiErrorsSource'Customer obj) : (Data.Aeson..=) "cvc_check" (apiErrorsSource'CvcCheck obj) : (Data.Aeson..=) "default_for_currency" (apiErrorsSource'DefaultForCurrency obj) : (Data.Aeson..=) "dynamic_last4" (apiErrorsSource'DynamicLast4 obj) : (Data.Aeson..=) "eps" (apiErrorsSource'Eps obj) : (Data.Aeson..=) "exp_month" (apiErrorsSource'ExpMonth obj) : (Data.Aeson..=) "exp_year" (apiErrorsSource'ExpYear obj) : (Data.Aeson..=) "fingerprint" (apiErrorsSource'Fingerprint obj) : (Data.Aeson..=) "flow" (apiErrorsSource'Flow obj) : (Data.Aeson..=) "funding" (apiErrorsSource'Funding obj) : (Data.Aeson..=) "giropay" (apiErrorsSource'Giropay obj) : (Data.Aeson..=) "id" (apiErrorsSource'Id obj) : (Data.Aeson..=) "ideal" (apiErrorsSource'Ideal obj) : (Data.Aeson..=) "klarna" (apiErrorsSource'Klarna obj) : (Data.Aeson..=) "last4" (apiErrorsSource'Last4 obj) : (Data.Aeson..=) "livemode" (apiErrorsSource'Livemode obj) : (Data.Aeson..=) "metadata" (apiErrorsSource'Metadata obj) : (Data.Aeson..=) "multibanco" (apiErrorsSource'Multibanco obj) : (Data.Aeson..=) "name" (apiErrorsSource'Name obj) : (Data.Aeson..=) "object" (apiErrorsSource'Object obj) : (Data.Aeson..=) "owner" (apiErrorsSource'Owner obj) : (Data.Aeson..=) "p24" (apiErrorsSource'P24 obj) : (Data.Aeson..=) "receiver" (apiErrorsSource'Receiver obj) : (Data.Aeson..=) "recipient" (apiErrorsSource'Recipient obj) : (Data.Aeson..=) "redirect" (apiErrorsSource'Redirect obj) : (Data.Aeson..=) "routing_number" (apiErrorsSource'RoutingNumber obj) : (Data.Aeson..=) "sepa_debit" (apiErrorsSource'SepaDebit obj) : (Data.Aeson..=) "sofort" (apiErrorsSource'Sofort obj) : (Data.Aeson..=) "source_order" (apiErrorsSource'SourceOrder obj) : (Data.Aeson..=) "statement_descriptor" (apiErrorsSource'StatementDescriptor obj) : (Data.Aeson..=) "status" (apiErrorsSource'Status obj) : (Data.Aeson..=) "three_d_secure" (apiErrorsSource'ThreeDSecure obj) : (Data.Aeson..=) "tokenization_method" (apiErrorsSource'TokenizationMethod obj) : (Data.Aeson..=) "type" (apiErrorsSource'Type obj) : (Data.Aeson..=) "usage" (apiErrorsSource'Usage obj) : (Data.Aeson..=) "wechat" (apiErrorsSource'Wechat obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (apiErrorsSource'Account obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_name" (apiErrorsSource'AccountHolderName obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_type" (apiErrorsSource'AccountHolderType obj) GHC.Base.<> ((Data.Aeson..=) "ach_credit_transfer" (apiErrorsSource'AchCreditTransfer obj) GHC.Base.<> ((Data.Aeson..=) "ach_debit" (apiErrorsSource'AchDebit obj) GHC.Base.<> ((Data.Aeson..=) "address_city" (apiErrorsSource'AddressCity obj) GHC.Base.<> ((Data.Aeson..=) "address_country" (apiErrorsSource'AddressCountry obj) GHC.Base.<> ((Data.Aeson..=) "address_line1" (apiErrorsSource'AddressLine1 obj) GHC.Base.<> ((Data.Aeson..=) "address_line1_check" (apiErrorsSource'AddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_line2" (apiErrorsSource'AddressLine2 obj) GHC.Base.<> ((Data.Aeson..=) "address_state" (apiErrorsSource'AddressState obj) GHC.Base.<> ((Data.Aeson..=) "address_zip" (apiErrorsSource'AddressZip obj) GHC.Base.<> ((Data.Aeson..=) "address_zip_check" (apiErrorsSource'AddressZipCheck obj) GHC.Base.<> ((Data.Aeson..=) "alipay" (apiErrorsSource'Alipay obj) GHC.Base.<> ((Data.Aeson..=) "amount" (apiErrorsSource'Amount obj) GHC.Base.<> ((Data.Aeson..=) "available_payout_methods" (apiErrorsSource'AvailablePayoutMethods obj) GHC.Base.<> ((Data.Aeson..=) "bancontact" (apiErrorsSource'Bancontact obj) GHC.Base.<> ((Data.Aeson..=) "bank_name" (apiErrorsSource'BankName obj) GHC.Base.<> ((Data.Aeson..=) "brand" (apiErrorsSource'Brand obj) GHC.Base.<> ((Data.Aeson..=) "card" (apiErrorsSource'Card obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (apiErrorsSource'CardPresent obj) GHC.Base.<> ((Data.Aeson..=) "client_secret" (apiErrorsSource'ClientSecret obj) GHC.Base.<> ((Data.Aeson..=) "code_verification" (apiErrorsSource'CodeVerification obj) GHC.Base.<> ((Data.Aeson..=) "country" (apiErrorsSource'Country obj) GHC.Base.<> ((Data.Aeson..=) "created" (apiErrorsSource'Created obj) GHC.Base.<> ((Data.Aeson..=) "currency" (apiErrorsSource'Currency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (apiErrorsSource'Customer obj) GHC.Base.<> ((Data.Aeson..=) "cvc_check" (apiErrorsSource'CvcCheck obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (apiErrorsSource'DefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (apiErrorsSource'DynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "eps" (apiErrorsSource'Eps obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (apiErrorsSource'ExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (apiErrorsSource'ExpYear obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (apiErrorsSource'Fingerprint obj) GHC.Base.<> ((Data.Aeson..=) "flow" (apiErrorsSource'Flow obj) GHC.Base.<> ((Data.Aeson..=) "funding" (apiErrorsSource'Funding obj) GHC.Base.<> ((Data.Aeson..=) "giropay" (apiErrorsSource'Giropay obj) GHC.Base.<> ((Data.Aeson..=) "id" (apiErrorsSource'Id obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (apiErrorsSource'Ideal obj) GHC.Base.<> ((Data.Aeson..=) "klarna" (apiErrorsSource'Klarna obj) GHC.Base.<> ((Data.Aeson..=) "last4" (apiErrorsSource'Last4 obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (apiErrorsSource'Livemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (apiErrorsSource'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "multibanco" (apiErrorsSource'Multibanco obj) GHC.Base.<> ((Data.Aeson..=) "name" (apiErrorsSource'Name obj) GHC.Base.<> ((Data.Aeson..=) "object" (apiErrorsSource'Object obj) GHC.Base.<> ((Data.Aeson..=) "owner" (apiErrorsSource'Owner obj) GHC.Base.<> ((Data.Aeson..=) "p24" (apiErrorsSource'P24 obj) GHC.Base.<> ((Data.Aeson..=) "receiver" (apiErrorsSource'Receiver obj) GHC.Base.<> ((Data.Aeson..=) "recipient" (apiErrorsSource'Recipient obj) GHC.Base.<> ((Data.Aeson..=) "redirect" (apiErrorsSource'Redirect obj) GHC.Base.<> ((Data.Aeson..=) "routing_number" (apiErrorsSource'RoutingNumber obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (apiErrorsSource'SepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "sofort" (apiErrorsSource'Sofort obj) GHC.Base.<> ((Data.Aeson..=) "source_order" (apiErrorsSource'SourceOrder obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (apiErrorsSource'StatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "status" (apiErrorsSource'Status obj) GHC.Base.<> ((Data.Aeson..=) "three_d_secure" (apiErrorsSource'ThreeDSecure obj) GHC.Base.<> ((Data.Aeson..=) "tokenization_method" (apiErrorsSource'TokenizationMethod obj) GHC.Base.<> ((Data.Aeson..=) "type" (apiErrorsSource'Type obj) GHC.Base.<> ((Data.Aeson..=) "usage" (apiErrorsSource'Usage obj) GHC.Base.<> (Data.Aeson..=) "wechat" (apiErrorsSource'Wechat obj))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON ApiErrorsSource'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ApiErrorsSource'" (\obj -> (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((GHC.Base.pure ApiErrorsSource' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_payout_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_secret")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "code_verification")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "flow")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "owner")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receiver")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "recipient")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "redirect")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_order")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "three_d_secure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tokenization_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat"))
-- | Define the one-of schema api_errorsSource\'Account\'
-- 
-- The ID of the account that the bank account is associated with.
data ApiErrorsSource'Account'Variants
    = ApiErrorsSource'Account'Account Account
    | ApiErrorsSource'Account'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ApiErrorsSource'Account'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ApiErrorsSource'Account'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema api_errorsSource\'Available_payout_methods\'
-- 
-- 
data ApiErrorsSource'AvailablePayoutMethods'
    = ApiErrorsSource'AvailablePayoutMethods'EnumOther Data.Aeson.Types.Internal.Value
    | ApiErrorsSource'AvailablePayoutMethods'EnumTyped GHC.Base.String
    | ApiErrorsSource'AvailablePayoutMethods'EnumStringInstant
    | ApiErrorsSource'AvailablePayoutMethods'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApiErrorsSource'AvailablePayoutMethods'
    where toJSON (ApiErrorsSource'AvailablePayoutMethods'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApiErrorsSource'AvailablePayoutMethods'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApiErrorsSource'AvailablePayoutMethods'EnumStringInstant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant"
          toJSON (ApiErrorsSource'AvailablePayoutMethods'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON ApiErrorsSource'AvailablePayoutMethods'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant")
                                          then ApiErrorsSource'AvailablePayoutMethods'EnumStringInstant
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                then ApiErrorsSource'AvailablePayoutMethods'EnumStringStandard
                                                else ApiErrorsSource'AvailablePayoutMethods'EnumOther val)
-- | Define the one-of schema api_errorsSource\'Customer\'
-- 
-- The ID of the customer that the bank account is associated with.
data ApiErrorsSource'Customer'Variants
    = ApiErrorsSource'Customer'Customer Customer
    | ApiErrorsSource'Customer'DeletedCustomer DeletedCustomer
    | ApiErrorsSource'Customer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ApiErrorsSource'Customer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ApiErrorsSource'Customer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema api_errorsSource\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data ApiErrorsSource'Metadata' = ApiErrorsSource'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApiErrorsSource'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON ApiErrorsSource'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ApiErrorsSource'Metadata'" (\obj -> GHC.Base.pure ApiErrorsSource'Metadata')
-- | Defines the enum schema api_errorsSource\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data ApiErrorsSource'Object'
    = ApiErrorsSource'Object'EnumOther Data.Aeson.Types.Internal.Value
    | ApiErrorsSource'Object'EnumTyped GHC.Base.String
    | ApiErrorsSource'Object'EnumStringBankAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApiErrorsSource'Object'
    where toJSON (ApiErrorsSource'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApiErrorsSource'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApiErrorsSource'Object'EnumStringBankAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account"
instance Data.Aeson.FromJSON ApiErrorsSource'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account")
                                          then ApiErrorsSource'Object'EnumStringBankAccount
                                          else ApiErrorsSource'Object'EnumOther val)
-- | Defines the data type for the schema api_errorsSource\'Owner\'
-- 
-- Information about the owner of the payment instrument that may be used or required by particular source types.
data ApiErrorsSource'Owner' = ApiErrorsSource'Owner' {
  -- | address: Owner\'s address.
  apiErrorsSource'Owner'Address :: (GHC.Maybe.Maybe ApiErrorsSource'Owner'Address')
  -- | email: Owner\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'Email :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s full name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Owner\'s phone number (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_address: Verified owner\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , apiErrorsSource'Owner'VerifiedAddress :: (GHC.Maybe.Maybe ApiErrorsSource'Owner'VerifiedAddress')
  -- | verified_email: Verified owner\'s email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'VerifiedEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_name: Verified owner\'s full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'VerifiedName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_phone: Verified owner\'s phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'VerifiedPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApiErrorsSource'Owner'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (apiErrorsSource'Owner'Address obj) : (Data.Aeson..=) "email" (apiErrorsSource'Owner'Email obj) : (Data.Aeson..=) "name" (apiErrorsSource'Owner'Name obj) : (Data.Aeson..=) "phone" (apiErrorsSource'Owner'Phone obj) : (Data.Aeson..=) "verified_address" (apiErrorsSource'Owner'VerifiedAddress obj) : (Data.Aeson..=) "verified_email" (apiErrorsSource'Owner'VerifiedEmail obj) : (Data.Aeson..=) "verified_name" (apiErrorsSource'Owner'VerifiedName obj) : (Data.Aeson..=) "verified_phone" (apiErrorsSource'Owner'VerifiedPhone obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (apiErrorsSource'Owner'Address obj) GHC.Base.<> ((Data.Aeson..=) "email" (apiErrorsSource'Owner'Email obj) GHC.Base.<> ((Data.Aeson..=) "name" (apiErrorsSource'Owner'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (apiErrorsSource'Owner'Phone obj) GHC.Base.<> ((Data.Aeson..=) "verified_address" (apiErrorsSource'Owner'VerifiedAddress obj) GHC.Base.<> ((Data.Aeson..=) "verified_email" (apiErrorsSource'Owner'VerifiedEmail obj) GHC.Base.<> ((Data.Aeson..=) "verified_name" (apiErrorsSource'Owner'VerifiedName obj) GHC.Base.<> (Data.Aeson..=) "verified_phone" (apiErrorsSource'Owner'VerifiedPhone obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON ApiErrorsSource'Owner'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ApiErrorsSource'Owner'" (\obj -> (((((((GHC.Base.pure ApiErrorsSource'Owner' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_phone"))
-- | Defines the data type for the schema api_errorsSource\'Owner\'Address\'
-- 
-- Owner\\\'s address.
data ApiErrorsSource'Owner'Address' = ApiErrorsSource'Owner'Address' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  apiErrorsSource'Owner'Address'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'Address'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'Address'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'Address'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'Address'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'Address'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApiErrorsSource'Owner'Address'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (apiErrorsSource'Owner'Address'City obj) : (Data.Aeson..=) "country" (apiErrorsSource'Owner'Address'Country obj) : (Data.Aeson..=) "line1" (apiErrorsSource'Owner'Address'Line1 obj) : (Data.Aeson..=) "line2" (apiErrorsSource'Owner'Address'Line2 obj) : (Data.Aeson..=) "postal_code" (apiErrorsSource'Owner'Address'PostalCode obj) : (Data.Aeson..=) "state" (apiErrorsSource'Owner'Address'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (apiErrorsSource'Owner'Address'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (apiErrorsSource'Owner'Address'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (apiErrorsSource'Owner'Address'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (apiErrorsSource'Owner'Address'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (apiErrorsSource'Owner'Address'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (apiErrorsSource'Owner'Address'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON ApiErrorsSource'Owner'Address'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ApiErrorsSource'Owner'Address'" (\obj -> (((((GHC.Base.pure ApiErrorsSource'Owner'Address' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema api_errorsSource\'Owner\'Verified_address\'
-- 
-- Verified owner\\\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
data ApiErrorsSource'Owner'VerifiedAddress' = ApiErrorsSource'Owner'VerifiedAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  apiErrorsSource'Owner'VerifiedAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'VerifiedAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'VerifiedAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'VerifiedAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'VerifiedAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , apiErrorsSource'Owner'VerifiedAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApiErrorsSource'Owner'VerifiedAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (apiErrorsSource'Owner'VerifiedAddress'City obj) : (Data.Aeson..=) "country" (apiErrorsSource'Owner'VerifiedAddress'Country obj) : (Data.Aeson..=) "line1" (apiErrorsSource'Owner'VerifiedAddress'Line1 obj) : (Data.Aeson..=) "line2" (apiErrorsSource'Owner'VerifiedAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (apiErrorsSource'Owner'VerifiedAddress'PostalCode obj) : (Data.Aeson..=) "state" (apiErrorsSource'Owner'VerifiedAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (apiErrorsSource'Owner'VerifiedAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (apiErrorsSource'Owner'VerifiedAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (apiErrorsSource'Owner'VerifiedAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (apiErrorsSource'Owner'VerifiedAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (apiErrorsSource'Owner'VerifiedAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (apiErrorsSource'Owner'VerifiedAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON ApiErrorsSource'Owner'VerifiedAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ApiErrorsSource'Owner'VerifiedAddress'" (\obj -> (((((GHC.Base.pure ApiErrorsSource'Owner'VerifiedAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Define the one-of schema api_errorsSource\'Recipient\'
-- 
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data ApiErrorsSource'Recipient'Variants
    = ApiErrorsSource'Recipient'Recipient Recipient
    | ApiErrorsSource'Recipient'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ApiErrorsSource'Recipient'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ApiErrorsSource'Recipient'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema api_errorsSource\'Type\'
-- 
-- The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
data ApiErrorsSource'Type'
    = ApiErrorsSource'Type'EnumOther Data.Aeson.Types.Internal.Value
    | ApiErrorsSource'Type'EnumTyped GHC.Base.String
    | ApiErrorsSource'Type'EnumStringAchCreditTransfer
    | ApiErrorsSource'Type'EnumStringAchDebit
    | ApiErrorsSource'Type'EnumStringAlipay
    | ApiErrorsSource'Type'EnumStringBancontact
    | ApiErrorsSource'Type'EnumStringCard
    | ApiErrorsSource'Type'EnumStringCardPresent
    | ApiErrorsSource'Type'EnumStringEps
    | ApiErrorsSource'Type'EnumStringGiropay
    | ApiErrorsSource'Type'EnumStringIdeal
    | ApiErrorsSource'Type'EnumStringKlarna
    | ApiErrorsSource'Type'EnumStringMultibanco
    | ApiErrorsSource'Type'EnumStringP24
    | ApiErrorsSource'Type'EnumStringSepaDebit
    | ApiErrorsSource'Type'EnumStringSofort
    | ApiErrorsSource'Type'EnumStringThreeDSecure
    | ApiErrorsSource'Type'EnumStringWechat
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApiErrorsSource'Type'
    where toJSON (ApiErrorsSource'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApiErrorsSource'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApiErrorsSource'Type'EnumStringAchCreditTransfer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_credit_transfer"
          toJSON (ApiErrorsSource'Type'EnumStringAchDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_debit"
          toJSON (ApiErrorsSource'Type'EnumStringAlipay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay"
          toJSON (ApiErrorsSource'Type'EnumStringBancontact) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bancontact"
          toJSON (ApiErrorsSource'Type'EnumStringCard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card"
          toJSON (ApiErrorsSource'Type'EnumStringCardPresent) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_present"
          toJSON (ApiErrorsSource'Type'EnumStringEps) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eps"
          toJSON (ApiErrorsSource'Type'EnumStringGiropay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "giropay"
          toJSON (ApiErrorsSource'Type'EnumStringIdeal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal"
          toJSON (ApiErrorsSource'Type'EnumStringKlarna) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "klarna"
          toJSON (ApiErrorsSource'Type'EnumStringMultibanco) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multibanco"
          toJSON (ApiErrorsSource'Type'EnumStringP24) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "p24"
          toJSON (ApiErrorsSource'Type'EnumStringSepaDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit"
          toJSON (ApiErrorsSource'Type'EnumStringSofort) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sofort"
          toJSON (ApiErrorsSource'Type'EnumStringThreeDSecure) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure"
          toJSON (ApiErrorsSource'Type'EnumStringWechat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wechat"
instance Data.Aeson.FromJSON ApiErrorsSource'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_credit_transfer")
                                          then ApiErrorsSource'Type'EnumStringAchCreditTransfer
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_debit")
                                                then ApiErrorsSource'Type'EnumStringAchDebit
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay")
                                                      then ApiErrorsSource'Type'EnumStringAlipay
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bancontact")
                                                            then ApiErrorsSource'Type'EnumStringBancontact
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card")
                                                                  then ApiErrorsSource'Type'EnumStringCard
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_present")
                                                                        then ApiErrorsSource'Type'EnumStringCardPresent
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eps")
                                                                              then ApiErrorsSource'Type'EnumStringEps
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "giropay")
                                                                                    then ApiErrorsSource'Type'EnumStringGiropay
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal")
                                                                                          then ApiErrorsSource'Type'EnumStringIdeal
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "klarna")
                                                                                                then ApiErrorsSource'Type'EnumStringKlarna
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multibanco")
                                                                                                      then ApiErrorsSource'Type'EnumStringMultibanco
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "p24")
                                                                                                            then ApiErrorsSource'Type'EnumStringP24
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit")
                                                                                                                  then ApiErrorsSource'Type'EnumStringSepaDebit
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sofort")
                                                                                                                        then ApiErrorsSource'Type'EnumStringSofort
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure")
                                                                                                                              then ApiErrorsSource'Type'EnumStringThreeDSecure
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wechat")
                                                                                                                                    then ApiErrorsSource'Type'EnumStringWechat
                                                                                                                                    else ApiErrorsSource'Type'EnumOther val)
-- | Defines the enum schema api_errorsType\'
-- 
-- The type of error returned. One of \`api_connection_error\`, \`api_error\`, \`authentication_error\`, \`card_error\`, \`idempotency_error\`, \`invalid_request_error\`, or \`rate_limit_error\`
data ApiErrorsType'
    = ApiErrorsType'EnumOther Data.Aeson.Types.Internal.Value
    | ApiErrorsType'EnumTyped GHC.Base.String
    | ApiErrorsType'EnumStringApiConnectionError
    | ApiErrorsType'EnumStringApiError
    | ApiErrorsType'EnumStringAuthenticationError
    | ApiErrorsType'EnumStringCardError
    | ApiErrorsType'EnumStringIdempotencyError
    | ApiErrorsType'EnumStringInvalidRequestError
    | ApiErrorsType'EnumStringRateLimitError
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApiErrorsType'
    where toJSON (ApiErrorsType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApiErrorsType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApiErrorsType'EnumStringApiConnectionError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_connection_error"
          toJSON (ApiErrorsType'EnumStringApiError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_error"
          toJSON (ApiErrorsType'EnumStringAuthenticationError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "authentication_error"
          toJSON (ApiErrorsType'EnumStringCardError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_error"
          toJSON (ApiErrorsType'EnumStringIdempotencyError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "idempotency_error"
          toJSON (ApiErrorsType'EnumStringInvalidRequestError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invalid_request_error"
          toJSON (ApiErrorsType'EnumStringRateLimitError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "rate_limit_error"
instance Data.Aeson.FromJSON ApiErrorsType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_connection_error")
                                          then ApiErrorsType'EnumStringApiConnectionError
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_error")
                                                then ApiErrorsType'EnumStringApiError
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "authentication_error")
                                                      then ApiErrorsType'EnumStringAuthenticationError
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_error")
                                                            then ApiErrorsType'EnumStringCardError
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "idempotency_error")
                                                                  then ApiErrorsType'EnumStringIdempotencyError
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invalid_request_error")
                                                                        then ApiErrorsType'EnumStringInvalidRequestError
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "rate_limit_error")
                                                                              then ApiErrorsType'EnumStringRateLimitError
                                                                              else ApiErrorsType'EnumOther val)
-- | Defines the data type for the schema application_fee
-- 
-- 
data ApplicationFee = ApplicationFee {
  -- | account: ID of the Stripe account this fee was taken from.
  applicationFeeAccount :: ApplicationFeeAccount'Variants
  -- | amount: Amount earned, in %s.
  , applicationFeeAmount :: GHC.Integer.Type.Integer
  -- | amount_refunded: Amount in %s refunded (can be less than the amount attribute on the fee if a partial refund was issued)
  , applicationFeeAmountRefunded :: GHC.Integer.Type.Integer
  -- | application: ID of the Connect application that earned the fee.
  , applicationFeeApplication :: ApplicationFeeApplication'Variants
  -- | balance_transaction: Balance transaction that describes the impact of this collected application fee on your account balance (not including refunds).
  , applicationFeeBalanceTransaction :: (GHC.Maybe.Maybe ApplicationFeeBalanceTransaction'Variants)
  -- | charge: ID of the charge that the application fee was taken from.
  , applicationFeeCharge :: ApplicationFeeCharge'Variants
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , applicationFeeCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , applicationFeeCurrency :: GHC.Base.String
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , applicationFeeId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , applicationFeeLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , applicationFeeObject :: ApplicationFeeObject'
  -- | originating_transaction: ID of the corresponding charge on the platform account, if this fee was the result of a charge using the \`destination\` parameter.
  , applicationFeeOriginatingTransaction :: (GHC.Maybe.Maybe ApplicationFeeOriginatingTransaction'Variants)
  -- | refunded: Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false.
  , applicationFeeRefunded :: GHC.Types.Bool
  -- | refunds: A list of refunds that have been applied to the fee.
  , applicationFeeRefunds :: ApplicationFeeRefunds'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApplicationFee
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (applicationFeeAccount obj) : (Data.Aeson..=) "amount" (applicationFeeAmount obj) : (Data.Aeson..=) "amount_refunded" (applicationFeeAmountRefunded obj) : (Data.Aeson..=) "application" (applicationFeeApplication obj) : (Data.Aeson..=) "balance_transaction" (applicationFeeBalanceTransaction obj) : (Data.Aeson..=) "charge" (applicationFeeCharge obj) : (Data.Aeson..=) "created" (applicationFeeCreated obj) : (Data.Aeson..=) "currency" (applicationFeeCurrency obj) : (Data.Aeson..=) "id" (applicationFeeId obj) : (Data.Aeson..=) "livemode" (applicationFeeLivemode obj) : (Data.Aeson..=) "object" (applicationFeeObject obj) : (Data.Aeson..=) "originating_transaction" (applicationFeeOriginatingTransaction obj) : (Data.Aeson..=) "refunded" (applicationFeeRefunded obj) : (Data.Aeson..=) "refunds" (applicationFeeRefunds obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (applicationFeeAccount obj) GHC.Base.<> ((Data.Aeson..=) "amount" (applicationFeeAmount obj) GHC.Base.<> ((Data.Aeson..=) "amount_refunded" (applicationFeeAmountRefunded obj) GHC.Base.<> ((Data.Aeson..=) "application" (applicationFeeApplication obj) GHC.Base.<> ((Data.Aeson..=) "balance_transaction" (applicationFeeBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "charge" (applicationFeeCharge obj) GHC.Base.<> ((Data.Aeson..=) "created" (applicationFeeCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (applicationFeeCurrency obj) GHC.Base.<> ((Data.Aeson..=) "id" (applicationFeeId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (applicationFeeLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (applicationFeeObject obj) GHC.Base.<> ((Data.Aeson..=) "originating_transaction" (applicationFeeOriginatingTransaction obj) GHC.Base.<> ((Data.Aeson..=) "refunded" (applicationFeeRefunded obj) GHC.Base.<> (Data.Aeson..=) "refunds" (applicationFeeRefunds obj))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON ApplicationFee
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ApplicationFee" (\obj -> (((((((((((((GHC.Base.pure ApplicationFee GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount_refunded")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "application")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "originating_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "refunded")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "refunds"))
-- | Define the one-of schema application_feeAccount\'
-- 
-- ID of the Stripe account this fee was taken from.
data ApplicationFeeAccount'Variants
    = ApplicationFeeAccount'Account Account
    | ApplicationFeeAccount'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ApplicationFeeAccount'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ApplicationFeeAccount'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema application_feeApplication\'
-- 
-- ID of the Connect application that earned the fee.
data ApplicationFeeApplication'Variants
    = ApplicationFeeApplication'Application Application
    | ApplicationFeeApplication'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ApplicationFeeApplication'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ApplicationFeeApplication'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema application_feeBalance_transaction\'
-- 
-- Balance transaction that describes the impact of this collected application fee on your account balance (not including refunds).
data ApplicationFeeBalanceTransaction'Variants
    = ApplicationFeeBalanceTransaction'BalanceTransaction BalanceTransaction
    | ApplicationFeeBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ApplicationFeeBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ApplicationFeeBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema application_feeCharge\'
-- 
-- ID of the charge that the application fee was taken from.
data ApplicationFeeCharge'Variants
    = ApplicationFeeCharge'Charge Charge
    | ApplicationFeeCharge'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ApplicationFeeCharge'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ApplicationFeeCharge'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema application_feeObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data ApplicationFeeObject'
    = ApplicationFeeObject'EnumOther Data.Aeson.Types.Internal.Value
    | ApplicationFeeObject'EnumTyped GHC.Base.String
    | ApplicationFeeObject'EnumStringApplicationFee
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApplicationFeeObject'
    where toJSON (ApplicationFeeObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApplicationFeeObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApplicationFeeObject'EnumStringApplicationFee) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "application_fee"
instance Data.Aeson.FromJSON ApplicationFeeObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "application_fee")
                                          then ApplicationFeeObject'EnumStringApplicationFee
                                          else ApplicationFeeObject'EnumOther val)
-- | Define the one-of schema application_feeOriginating_transaction\'
-- 
-- ID of the corresponding charge on the platform account, if this fee was the result of a charge using the \`destination\` parameter.
data ApplicationFeeOriginatingTransaction'Variants
    = ApplicationFeeOriginatingTransaction'Charge Charge
    | ApplicationFeeOriginatingTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ApplicationFeeOriginatingTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ApplicationFeeOriginatingTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema application_feeRefunds\'
-- 
-- A list of refunds that have been applied to the fee.
data ApplicationFeeRefunds' = ApplicationFeeRefunds' {
  -- | data: Details about each object.
  applicationFeeRefunds'Data :: ([] FeeRefund)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , applicationFeeRefunds'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , applicationFeeRefunds'Object :: ApplicationFeeRefunds'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , applicationFeeRefunds'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApplicationFeeRefunds'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (applicationFeeRefunds'Data obj) : (Data.Aeson..=) "has_more" (applicationFeeRefunds'HasMore obj) : (Data.Aeson..=) "object" (applicationFeeRefunds'Object obj) : (Data.Aeson..=) "url" (applicationFeeRefunds'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (applicationFeeRefunds'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (applicationFeeRefunds'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (applicationFeeRefunds'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (applicationFeeRefunds'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON ApplicationFeeRefunds'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ApplicationFeeRefunds'" (\obj -> (((GHC.Base.pure ApplicationFeeRefunds' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema application_feeRefunds\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data ApplicationFeeRefunds'Object'
    = ApplicationFeeRefunds'Object'EnumOther Data.Aeson.Types.Internal.Value
    | ApplicationFeeRefunds'Object'EnumTyped GHC.Base.String
    | ApplicationFeeRefunds'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ApplicationFeeRefunds'Object'
    where toJSON (ApplicationFeeRefunds'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApplicationFeeRefunds'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ApplicationFeeRefunds'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON ApplicationFeeRefunds'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then ApplicationFeeRefunds'Object'EnumStringList
                                          else ApplicationFeeRefunds'Object'EnumOther val)
-- | Defines the data type for the schema balance_transaction
-- 
-- Balance transactions represent funds moving through your Stripe account.
-- They\'re created for every type of transaction that comes into or flows out of your Stripe account balance.
-- 
-- Related guide: [Balance Transaction Types](https:\/\/stripe.com\/docs\/reports\/balance-transaction-types).
data BalanceTransaction = BalanceTransaction {
  -- | amount: Gross amount of the transaction, in %s.
  balanceTransactionAmount :: GHC.Integer.Type.Integer
  -- | available_on: The date the transaction\'s net funds will become available in the Stripe balance.
  , balanceTransactionAvailableOn :: GHC.Integer.Type.Integer
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , balanceTransactionCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , balanceTransactionCurrency :: GHC.Base.String
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , balanceTransactionDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | exchange_rate: The exchange rate used, if applicable, for this transaction. Specifically, if money was converted from currency A to currency B, then the \`amount\` in currency A, times \`exchange_rate\`, would be the \`amount\` in currency B. For example, suppose you charged a customer 10.00 EUR. Then the PaymentIntent\'s \`amount\` would be \`1000\` and \`currency\` would be \`eur\`. Suppose this was converted into 12.34 USD in your Stripe account. Then the BalanceTransaction\'s \`amount\` would be \`1234\`, \`currency\` would be \`usd\`, and \`exchange_rate\` would be \`1.234\`.
  , balanceTransactionExchangeRate :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | fee: Fees (in %s) paid for this transaction.
  , balanceTransactionFee :: GHC.Integer.Type.Integer
  -- | fee_details: Detailed breakdown of fees (in %s) paid for this transaction.
  , balanceTransactionFeeDetails :: ([] Fee)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , balanceTransactionId :: GHC.Base.String
  -- | net: Net amount of the transaction, in %s.
  , balanceTransactionNet :: GHC.Integer.Type.Integer
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , balanceTransactionObject :: BalanceTransactionObject'
  -- | reporting_category: [Learn more](https:\/\/stripe.com\/docs\/reports\/reporting-categories) about how reporting categories can help you understand balance transactions from an accounting perspective.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , balanceTransactionReportingCategory :: GHC.Base.String
  -- | source: The Stripe object to which this transaction is related.
  , balanceTransactionSource :: (GHC.Maybe.Maybe BalanceTransactionSource'Variants)
  -- | status: If the transaction\'s net funds are available in the Stripe balance yet. Either \`available\` or \`pending\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , balanceTransactionStatus :: GHC.Base.String
  -- | type: Transaction type: \`adjustment\`, \`advance\`, \`advance_funding\`, \`application_fee\`, \`application_fee_refund\`, \`charge\`, \`connect_collection_transfer\`, \`issuing_authorization_hold\`, \`issuing_authorization_release\`, \`issuing_transaction\`, \`payment\`, \`payment_failure_refund\`, \`payment_refund\`, \`payout\`, \`payout_cancel\`, \`payout_failure\`, \`refund\`, \`refund_failure\`, \`reserve_transaction\`, \`reserved_funds\`, \`stripe_fee\`, \`stripe_fx_fee\`, \`tax_fee\`, \`topup\`, \`topup_reversal\`, \`transfer\`, \`transfer_cancel\`, \`transfer_failure\`, or \`transfer_refund\`. [Learn more](https:\/\/stripe.com\/docs\/reports\/balance-transaction-types) about balance transaction types and what they represent. If you are looking to classify transactions for accounting purposes, you might want to consider \`reporting_category\` instead.
  , balanceTransactionType :: BalanceTransactionType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON BalanceTransaction
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (balanceTransactionAmount obj) : (Data.Aeson..=) "available_on" (balanceTransactionAvailableOn obj) : (Data.Aeson..=) "created" (balanceTransactionCreated obj) : (Data.Aeson..=) "currency" (balanceTransactionCurrency obj) : (Data.Aeson..=) "description" (balanceTransactionDescription obj) : (Data.Aeson..=) "exchange_rate" (balanceTransactionExchangeRate obj) : (Data.Aeson..=) "fee" (balanceTransactionFee obj) : (Data.Aeson..=) "fee_details" (balanceTransactionFeeDetails obj) : (Data.Aeson..=) "id" (balanceTransactionId obj) : (Data.Aeson..=) "net" (balanceTransactionNet obj) : (Data.Aeson..=) "object" (balanceTransactionObject obj) : (Data.Aeson..=) "reporting_category" (balanceTransactionReportingCategory obj) : (Data.Aeson..=) "source" (balanceTransactionSource obj) : (Data.Aeson..=) "status" (balanceTransactionStatus obj) : (Data.Aeson..=) "type" (balanceTransactionType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (balanceTransactionAmount obj) GHC.Base.<> ((Data.Aeson..=) "available_on" (balanceTransactionAvailableOn obj) GHC.Base.<> ((Data.Aeson..=) "created" (balanceTransactionCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (balanceTransactionCurrency obj) GHC.Base.<> ((Data.Aeson..=) "description" (balanceTransactionDescription obj) GHC.Base.<> ((Data.Aeson..=) "exchange_rate" (balanceTransactionExchangeRate obj) GHC.Base.<> ((Data.Aeson..=) "fee" (balanceTransactionFee obj) GHC.Base.<> ((Data.Aeson..=) "fee_details" (balanceTransactionFeeDetails obj) GHC.Base.<> ((Data.Aeson..=) "id" (balanceTransactionId obj) GHC.Base.<> ((Data.Aeson..=) "net" (balanceTransactionNet obj) GHC.Base.<> ((Data.Aeson..=) "object" (balanceTransactionObject obj) GHC.Base.<> ((Data.Aeson..=) "reporting_category" (balanceTransactionReportingCategory obj) GHC.Base.<> ((Data.Aeson..=) "source" (balanceTransactionSource obj) GHC.Base.<> ((Data.Aeson..=) "status" (balanceTransactionStatus obj) GHC.Base.<> (Data.Aeson..=) "type" (balanceTransactionType obj)))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON BalanceTransaction
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "BalanceTransaction" (\obj -> ((((((((((((((GHC.Base.pure BalanceTransaction GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "available_on")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exchange_rate")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "fee")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "fee_details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "net")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "reporting_category")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Defines the enum schema balance_transactionObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data BalanceTransactionObject'
    = BalanceTransactionObject'EnumOther Data.Aeson.Types.Internal.Value
    | BalanceTransactionObject'EnumTyped GHC.Base.String
    | BalanceTransactionObject'EnumStringBalanceTransaction
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON BalanceTransactionObject'
    where toJSON (BalanceTransactionObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (BalanceTransactionObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (BalanceTransactionObject'EnumStringBalanceTransaction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "balance_transaction"
instance Data.Aeson.FromJSON BalanceTransactionObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "balance_transaction")
                                          then BalanceTransactionObject'EnumStringBalanceTransaction
                                          else BalanceTransactionObject'EnumOther val)
-- | Define the one-of schema balance_transactionSource\'
-- 
-- The Stripe object to which this transaction is related.
data BalanceTransactionSource'Variants
    = BalanceTransactionSource'ApplicationFee ApplicationFee
    | BalanceTransactionSource'Charge Charge
    | BalanceTransactionSource'ConnectCollectionTransfer ConnectCollectionTransfer
    | BalanceTransactionSource'Dispute Dispute
    | BalanceTransactionSource'FeeRefund FeeRefund
    | BalanceTransactionSource'Issuing'authorization Issuing'authorization
    | BalanceTransactionSource'Issuing'transaction Issuing'transaction
    | BalanceTransactionSource'Payout Payout
    | BalanceTransactionSource'PlatformTaxFee PlatformTaxFee
    | BalanceTransactionSource'Refund Refund
    | BalanceTransactionSource'ReserveTransaction ReserveTransaction
    | BalanceTransactionSource'TaxDeductedAtSource TaxDeductedAtSource
    | BalanceTransactionSource'Topup Topup
    | BalanceTransactionSource'Transfer Transfer
    | BalanceTransactionSource'TransferReversal TransferReversal
    | BalanceTransactionSource'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON BalanceTransactionSource'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON BalanceTransactionSource'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema balance_transactionType\'
-- 
-- Transaction type: \`adjustment\`, \`advance\`, \`advance_funding\`, \`application_fee\`, \`application_fee_refund\`, \`charge\`, \`connect_collection_transfer\`, \`issuing_authorization_hold\`, \`issuing_authorization_release\`, \`issuing_transaction\`, \`payment\`, \`payment_failure_refund\`, \`payment_refund\`, \`payout\`, \`payout_cancel\`, \`payout_failure\`, \`refund\`, \`refund_failure\`, \`reserve_transaction\`, \`reserved_funds\`, \`stripe_fee\`, \`stripe_fx_fee\`, \`tax_fee\`, \`topup\`, \`topup_reversal\`, \`transfer\`, \`transfer_cancel\`, \`transfer_failure\`, or \`transfer_refund\`. [Learn more](https:\/\/stripe.com\/docs\/reports\/balance-transaction-types) about balance transaction types and what they represent. If you are looking to classify transactions for accounting purposes, you might want to consider \`reporting_category\` instead.
data BalanceTransactionType'
    = BalanceTransactionType'EnumOther Data.Aeson.Types.Internal.Value
    | BalanceTransactionType'EnumTyped GHC.Base.String
    | BalanceTransactionType'EnumStringAdjustment
    | BalanceTransactionType'EnumStringAdvance
    | BalanceTransactionType'EnumStringAdvanceFunding
    | BalanceTransactionType'EnumStringApplicationFee
    | BalanceTransactionType'EnumStringApplicationFeeRefund
    | BalanceTransactionType'EnumStringCharge
    | BalanceTransactionType'EnumStringConnectCollectionTransfer
    | BalanceTransactionType'EnumStringIssuingAuthorizationHold
    | BalanceTransactionType'EnumStringIssuingAuthorizationRelease
    | BalanceTransactionType'EnumStringIssuingTransaction
    | BalanceTransactionType'EnumStringPayment
    | BalanceTransactionType'EnumStringPaymentFailureRefund
    | BalanceTransactionType'EnumStringPaymentRefund
    | BalanceTransactionType'EnumStringPayout
    | BalanceTransactionType'EnumStringPayoutCancel
    | BalanceTransactionType'EnumStringPayoutFailure
    | BalanceTransactionType'EnumStringRefund
    | BalanceTransactionType'EnumStringRefundFailure
    | BalanceTransactionType'EnumStringReserveTransaction
    | BalanceTransactionType'EnumStringReservedFunds
    | BalanceTransactionType'EnumStringStripeFee
    | BalanceTransactionType'EnumStringStripeFxFee
    | BalanceTransactionType'EnumStringTaxFee
    | BalanceTransactionType'EnumStringTopup
    | BalanceTransactionType'EnumStringTopupReversal
    | BalanceTransactionType'EnumStringTransfer
    | BalanceTransactionType'EnumStringTransferCancel
    | BalanceTransactionType'EnumStringTransferFailure
    | BalanceTransactionType'EnumStringTransferRefund
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON BalanceTransactionType'
    where toJSON (BalanceTransactionType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (BalanceTransactionType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (BalanceTransactionType'EnumStringAdjustment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "adjustment"
          toJSON (BalanceTransactionType'EnumStringAdvance) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advance"
          toJSON (BalanceTransactionType'EnumStringAdvanceFunding) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advance_funding"
          toJSON (BalanceTransactionType'EnumStringApplicationFee) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "application_fee"
          toJSON (BalanceTransactionType'EnumStringApplicationFeeRefund) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "application_fee_refund"
          toJSON (BalanceTransactionType'EnumStringCharge) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge"
          toJSON (BalanceTransactionType'EnumStringConnectCollectionTransfer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "connect_collection_transfer"
          toJSON (BalanceTransactionType'EnumStringIssuingAuthorizationHold) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing_authorization_hold"
          toJSON (BalanceTransactionType'EnumStringIssuingAuthorizationRelease) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing_authorization_release"
          toJSON (BalanceTransactionType'EnumStringIssuingTransaction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing_transaction"
          toJSON (BalanceTransactionType'EnumStringPayment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment"
          toJSON (BalanceTransactionType'EnumStringPaymentFailureRefund) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment_failure_refund"
          toJSON (BalanceTransactionType'EnumStringPaymentRefund) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment_refund"
          toJSON (BalanceTransactionType'EnumStringPayout) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payout"
          toJSON (BalanceTransactionType'EnumStringPayoutCancel) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payout_cancel"
          toJSON (BalanceTransactionType'EnumStringPayoutFailure) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payout_failure"
          toJSON (BalanceTransactionType'EnumStringRefund) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refund"
          toJSON (BalanceTransactionType'EnumStringRefundFailure) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refund_failure"
          toJSON (BalanceTransactionType'EnumStringReserveTransaction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reserve_transaction"
          toJSON (BalanceTransactionType'EnumStringReservedFunds) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reserved_funds"
          toJSON (BalanceTransactionType'EnumStringStripeFee) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stripe_fee"
          toJSON (BalanceTransactionType'EnumStringStripeFxFee) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stripe_fx_fee"
          toJSON (BalanceTransactionType'EnumStringTaxFee) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_fee"
          toJSON (BalanceTransactionType'EnumStringTopup) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "topup"
          toJSON (BalanceTransactionType'EnumStringTopupReversal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "topup_reversal"
          toJSON (BalanceTransactionType'EnumStringTransfer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer"
          toJSON (BalanceTransactionType'EnumStringTransferCancel) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer_cancel"
          toJSON (BalanceTransactionType'EnumStringTransferFailure) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer_failure"
          toJSON (BalanceTransactionType'EnumStringTransferRefund) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer_refund"
instance Data.Aeson.FromJSON BalanceTransactionType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "adjustment")
                                          then BalanceTransactionType'EnumStringAdjustment
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advance")
                                                then BalanceTransactionType'EnumStringAdvance
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advance_funding")
                                                      then BalanceTransactionType'EnumStringAdvanceFunding
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "application_fee")
                                                            then BalanceTransactionType'EnumStringApplicationFee
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "application_fee_refund")
                                                                  then BalanceTransactionType'EnumStringApplicationFeeRefund
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge")
                                                                        then BalanceTransactionType'EnumStringCharge
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "connect_collection_transfer")
                                                                              then BalanceTransactionType'EnumStringConnectCollectionTransfer
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing_authorization_hold")
                                                                                    then BalanceTransactionType'EnumStringIssuingAuthorizationHold
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing_authorization_release")
                                                                                          then BalanceTransactionType'EnumStringIssuingAuthorizationRelease
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing_transaction")
                                                                                                then BalanceTransactionType'EnumStringIssuingTransaction
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment")
                                                                                                      then BalanceTransactionType'EnumStringPayment
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment_failure_refund")
                                                                                                            then BalanceTransactionType'EnumStringPaymentFailureRefund
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment_refund")
                                                                                                                  then BalanceTransactionType'EnumStringPaymentRefund
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payout")
                                                                                                                        then BalanceTransactionType'EnumStringPayout
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payout_cancel")
                                                                                                                              then BalanceTransactionType'EnumStringPayoutCancel
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payout_failure")
                                                                                                                                    then BalanceTransactionType'EnumStringPayoutFailure
                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refund")
                                                                                                                                          then BalanceTransactionType'EnumStringRefund
                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refund_failure")
                                                                                                                                                then BalanceTransactionType'EnumStringRefundFailure
                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reserve_transaction")
                                                                                                                                                      then BalanceTransactionType'EnumStringReserveTransaction
                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reserved_funds")
                                                                                                                                                            then BalanceTransactionType'EnumStringReservedFunds
                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stripe_fee")
                                                                                                                                                                  then BalanceTransactionType'EnumStringStripeFee
                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stripe_fx_fee")
                                                                                                                                                                        then BalanceTransactionType'EnumStringStripeFxFee
                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_fee")
                                                                                                                                                                              then BalanceTransactionType'EnumStringTaxFee
                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "topup")
                                                                                                                                                                                    then BalanceTransactionType'EnumStringTopup
                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "topup_reversal")
                                                                                                                                                                                          then BalanceTransactionType'EnumStringTopupReversal
                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer")
                                                                                                                                                                                                then BalanceTransactionType'EnumStringTransfer
                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer_cancel")
                                                                                                                                                                                                      then BalanceTransactionType'EnumStringTransferCancel
                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer_failure")
                                                                                                                                                                                                            then BalanceTransactionType'EnumStringTransferFailure
                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer_refund")
                                                                                                                                                                                                                  then BalanceTransactionType'EnumStringTransferRefund
                                                                                                                                                                                                                  else BalanceTransactionType'EnumOther val)
-- | Defines the data type for the schema bank_account
-- 
-- These bank accounts are payment methods on \`Customer\` objects.
-- 
-- On the other hand [External Accounts](https:\/\/stripe.com\/docs\/api\#external_accounts) are transfer
-- destinations on \`Account\` objects for [Custom accounts](https:\/\/stripe.com\/docs\/connect\/custom-accounts).
-- They can be bank accounts or debit cards as well, and are documented in the links above.
-- 
-- Related guide: [Processing ACH & Bank Transfers](https:\/\/stripe.com\/docs\/payments\/ach-bank-transfers).
data BankAccount = BankAccount {
  -- | account: The ID of the account that the bank account is associated with.
  bankAccountAccount :: (GHC.Maybe.Maybe BankAccountAccount'Variants)
  -- | account_holder_name: The name of the person or business that owns the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , bankAccountAccountHolderName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , bankAccountAccountHolderType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , bankAccountBankName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter ISO code representing the country the bank account is located in.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , bankAccountCountry :: GHC.Base.String
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  , bankAccountCurrency :: GHC.Base.String
  -- | customer: The ID of the customer that the bank account is associated with.
  , bankAccountCustomer :: (GHC.Maybe.Maybe BankAccountCustomer'Variants)
  -- | default_for_currency: Whether this bank account is the default external account for its currency.
  , bankAccountDefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , bankAccountFingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , bankAccountId :: GHC.Base.String
  -- | last4: The last four digits of the bank account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , bankAccountLast4 :: GHC.Base.String
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , bankAccountMetadata :: (GHC.Maybe.Maybe BankAccountMetadata')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , bankAccountObject :: BankAccountObject'
  -- | routing_number: The routing transit number for the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , bankAccountRoutingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
  -- 
  -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , bankAccountStatus :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON BankAccount
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (bankAccountAccount obj) : (Data.Aeson..=) "account_holder_name" (bankAccountAccountHolderName obj) : (Data.Aeson..=) "account_holder_type" (bankAccountAccountHolderType obj) : (Data.Aeson..=) "bank_name" (bankAccountBankName obj) : (Data.Aeson..=) "country" (bankAccountCountry obj) : (Data.Aeson..=) "currency" (bankAccountCurrency obj) : (Data.Aeson..=) "customer" (bankAccountCustomer obj) : (Data.Aeson..=) "default_for_currency" (bankAccountDefaultForCurrency obj) : (Data.Aeson..=) "fingerprint" (bankAccountFingerprint obj) : (Data.Aeson..=) "id" (bankAccountId obj) : (Data.Aeson..=) "last4" (bankAccountLast4 obj) : (Data.Aeson..=) "metadata" (bankAccountMetadata obj) : (Data.Aeson..=) "object" (bankAccountObject obj) : (Data.Aeson..=) "routing_number" (bankAccountRoutingNumber obj) : (Data.Aeson..=) "status" (bankAccountStatus obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (bankAccountAccount obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_name" (bankAccountAccountHolderName obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_type" (bankAccountAccountHolderType obj) GHC.Base.<> ((Data.Aeson..=) "bank_name" (bankAccountBankName obj) GHC.Base.<> ((Data.Aeson..=) "country" (bankAccountCountry obj) GHC.Base.<> ((Data.Aeson..=) "currency" (bankAccountCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (bankAccountCustomer obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (bankAccountDefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (bankAccountFingerprint obj) GHC.Base.<> ((Data.Aeson..=) "id" (bankAccountId obj) GHC.Base.<> ((Data.Aeson..=) "last4" (bankAccountLast4 obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (bankAccountMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (bankAccountObject obj) GHC.Base.<> ((Data.Aeson..=) "routing_number" (bankAccountRoutingNumber obj) GHC.Base.<> (Data.Aeson..=) "status" (bankAccountStatus obj)))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON BankAccount
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "BankAccount" (\obj -> ((((((((((((((GHC.Base.pure BankAccount GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status"))
-- | Define the one-of schema bank_accountAccount\'
-- 
-- The ID of the account that the bank account is associated with.
data BankAccountAccount'Variants
    = BankAccountAccount'Account Account
    | BankAccountAccount'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON BankAccountAccount'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON BankAccountAccount'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema bank_accountCustomer\'
-- 
-- The ID of the customer that the bank account is associated with.
data BankAccountCustomer'Variants
    = BankAccountCustomer'Customer Customer
    | BankAccountCustomer'DeletedCustomer DeletedCustomer
    | BankAccountCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON BankAccountCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON BankAccountCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema bank_accountMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data BankAccountMetadata' = BankAccountMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON BankAccountMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON BankAccountMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "BankAccountMetadata'" (\obj -> GHC.Base.pure BankAccountMetadata')
-- | Defines the enum schema bank_accountObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data BankAccountObject'
    = BankAccountObject'EnumOther Data.Aeson.Types.Internal.Value
    | BankAccountObject'EnumTyped GHC.Base.String
    | BankAccountObject'EnumStringBankAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON BankAccountObject'
    where toJSON (BankAccountObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (BankAccountObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (BankAccountObject'EnumStringBankAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account"
instance Data.Aeson.FromJSON BankAccountObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account")
                                          then BankAccountObject'EnumStringBankAccount
                                          else BankAccountObject'EnumOther val)
-- | Defines the data type for the schema billing_details
-- 
-- 
data BillingDetails = BillingDetails {
  -- | address: Billing address.
  billingDetailsAddress :: (GHC.Maybe.Maybe BillingDetailsAddress')
  -- | email: Email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , billingDetailsEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Full name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , billingDetailsName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Billing phone number (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , billingDetailsPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON BillingDetails
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (billingDetailsAddress obj) : (Data.Aeson..=) "email" (billingDetailsEmail obj) : (Data.Aeson..=) "name" (billingDetailsName obj) : (Data.Aeson..=) "phone" (billingDetailsPhone obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (billingDetailsAddress obj) GHC.Base.<> ((Data.Aeson..=) "email" (billingDetailsEmail obj) GHC.Base.<> ((Data.Aeson..=) "name" (billingDetailsName obj) GHC.Base.<> (Data.Aeson..=) "phone" (billingDetailsPhone obj))))
instance Data.Aeson.Types.FromJSON.FromJSON BillingDetails
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "BillingDetails" (\obj -> (((GHC.Base.pure BillingDetails GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone"))
-- | Defines the data type for the schema billing_detailsAddress\'
-- 
-- Billing address.
data BillingDetailsAddress' = BillingDetailsAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  billingDetailsAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , billingDetailsAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , billingDetailsAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , billingDetailsAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , billingDetailsAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , billingDetailsAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON BillingDetailsAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (billingDetailsAddress'City obj) : (Data.Aeson..=) "country" (billingDetailsAddress'Country obj) : (Data.Aeson..=) "line1" (billingDetailsAddress'Line1 obj) : (Data.Aeson..=) "line2" (billingDetailsAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (billingDetailsAddress'PostalCode obj) : (Data.Aeson..=) "state" (billingDetailsAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (billingDetailsAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (billingDetailsAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (billingDetailsAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (billingDetailsAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (billingDetailsAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (billingDetailsAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON BillingDetailsAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "BillingDetailsAddress'" (\obj -> (((((GHC.Base.pure BillingDetailsAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema capability
-- 
-- This is an object representing a capability for a Stripe account.
-- 
-- Related guide: [Capabilities Overview](https:\/\/stripe.com\/docs\/connect\/capabilities-overview).
data Capability = Capability {
  -- | account: The account for which the capability enables functionality.
  capabilityAccount :: CapabilityAccount'Variants
  -- | id: The identifier for the capability.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , capabilityId :: GHC.Base.String
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , capabilityObject :: CapabilityObject'
  -- | requested: Whether the capability has been requested.
  , capabilityRequested :: GHC.Types.Bool
  -- | requested_at: Time at which the capability was requested. Measured in seconds since the Unix epoch.
  , capabilityRequestedAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | requirements: 
  , capabilityRequirements :: (GHC.Maybe.Maybe AccountCapabilityRequirements)
  -- | status: The status of the capability. Can be \`active\`, \`inactive\`, \`pending\`, or \`unrequested\`.
  , capabilityStatus :: CapabilityStatus'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Capability
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (capabilityAccount obj) : (Data.Aeson..=) "id" (capabilityId obj) : (Data.Aeson..=) "object" (capabilityObject obj) : (Data.Aeson..=) "requested" (capabilityRequested obj) : (Data.Aeson..=) "requested_at" (capabilityRequestedAt obj) : (Data.Aeson..=) "requirements" (capabilityRequirements obj) : (Data.Aeson..=) "status" (capabilityStatus obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (capabilityAccount obj) GHC.Base.<> ((Data.Aeson..=) "id" (capabilityId obj) GHC.Base.<> ((Data.Aeson..=) "object" (capabilityObject obj) GHC.Base.<> ((Data.Aeson..=) "requested" (capabilityRequested obj) GHC.Base.<> ((Data.Aeson..=) "requested_at" (capabilityRequestedAt obj) GHC.Base.<> ((Data.Aeson..=) "requirements" (capabilityRequirements obj) GHC.Base.<> (Data.Aeson..=) "status" (capabilityStatus obj)))))))
instance Data.Aeson.Types.FromJSON.FromJSON Capability
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Capability" (\obj -> ((((((GHC.Base.pure Capability GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "requested")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "requested_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "requirements")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status"))
-- | Define the one-of schema capabilityAccount\'
-- 
-- The account for which the capability enables functionality.
data CapabilityAccount'Variants
    = CapabilityAccount'Account Account
    | CapabilityAccount'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CapabilityAccount'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CapabilityAccount'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema capabilityObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data CapabilityObject'
    = CapabilityObject'EnumOther Data.Aeson.Types.Internal.Value
    | CapabilityObject'EnumTyped GHC.Base.String
    | CapabilityObject'EnumStringCapability
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CapabilityObject'
    where toJSON (CapabilityObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CapabilityObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CapabilityObject'EnumStringCapability) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "capability"
instance Data.Aeson.FromJSON CapabilityObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "capability")
                                          then CapabilityObject'EnumStringCapability
                                          else CapabilityObject'EnumOther val)
-- | Defines the enum schema capabilityStatus\'
-- 
-- The status of the capability. Can be \`active\`, \`inactive\`, \`pending\`, or \`unrequested\`.
data CapabilityStatus'
    = CapabilityStatus'EnumOther Data.Aeson.Types.Internal.Value
    | CapabilityStatus'EnumTyped GHC.Base.String
    | CapabilityStatus'EnumStringActive
    | CapabilityStatus'EnumStringDisabled
    | CapabilityStatus'EnumStringInactive
    | CapabilityStatus'EnumStringPending
    | CapabilityStatus'EnumStringUnrequested
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CapabilityStatus'
    where toJSON (CapabilityStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CapabilityStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CapabilityStatus'EnumStringActive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active"
          toJSON (CapabilityStatus'EnumStringDisabled) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "disabled"
          toJSON (CapabilityStatus'EnumStringInactive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "inactive"
          toJSON (CapabilityStatus'EnumStringPending) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pending"
          toJSON (CapabilityStatus'EnumStringUnrequested) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unrequested"
instance Data.Aeson.FromJSON CapabilityStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active")
                                          then CapabilityStatus'EnumStringActive
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "disabled")
                                                then CapabilityStatus'EnumStringDisabled
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "inactive")
                                                      then CapabilityStatus'EnumStringInactive
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pending")
                                                            then CapabilityStatus'EnumStringPending
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unrequested")
                                                                  then CapabilityStatus'EnumStringUnrequested
                                                                  else CapabilityStatus'EnumOther val)
-- | Defines the data type for the schema card
-- 
-- You can store multiple cards on a customer in order to charge the customer
-- later. You can also store multiple debit cards on a recipient in order to
-- transfer to those cards later.
-- 
-- Related guide: [Card Payments with Sources](https:\/\/stripe.com\/docs\/sources\/cards).
data Card = Card {
  -- | account: The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead.
  cardAccount :: (GHC.Maybe.Maybe CardAccount'Variants)
  -- | address_city: City\/District\/Suburb\/Town\/Village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardAddressCity :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_country: Billing address country, if provided when creating card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardAddressCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardAddressLine1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardAddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardAddressLine2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_state: State\/County\/Province\/Region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardAddressState :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardAddressZip :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardAddressZipCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | available_payout_methods: A set of available payout methods for this card. Will be either \`[\"standard\"]\` or \`[\"standard\", \"instant\"]\`. Only values from this set should be passed as the \`method\` when creating a transfer.
  , cardAvailablePayoutMethods :: (GHC.Maybe.Maybe ([] CardAvailablePayoutMethods'))
  -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardBrand :: GHC.Base.String
  -- | country: Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you\'ve collected.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | currency
  , cardCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.
  , cardCustomer :: (GHC.Maybe.Maybe CardCustomer'Variants)
  -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardCvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_for_currency: Whether this card is the default external account for its currency.
  , cardDefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardDynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , cardExpMonth :: GHC.Integer.Type.Integer
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , cardExpYear :: GHC.Integer.Type.Integer
  -- | fingerprint: Uniquely identifies this particular card number. You can use this attribute to check whether two customers who\'ve signed up with you are using the same card number, for example.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardFingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardFunding :: GHC.Base.String
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardId :: GHC.Base.String
  -- | last4: The last four digits of the card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardLast4 :: GHC.Base.String
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , cardMetadata :: CardMetadata'
  -- | name: Cardholder name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , cardObject :: CardObject'
  -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
  , cardRecipient :: (GHC.Maybe.Maybe CardRecipient'Variants)
  -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`amex_express_checkout\`, \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , cardTokenizationMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Card
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (cardAccount obj) : (Data.Aeson..=) "address_city" (cardAddressCity obj) : (Data.Aeson..=) "address_country" (cardAddressCountry obj) : (Data.Aeson..=) "address_line1" (cardAddressLine1 obj) : (Data.Aeson..=) "address_line1_check" (cardAddressLine1Check obj) : (Data.Aeson..=) "address_line2" (cardAddressLine2 obj) : (Data.Aeson..=) "address_state" (cardAddressState obj) : (Data.Aeson..=) "address_zip" (cardAddressZip obj) : (Data.Aeson..=) "address_zip_check" (cardAddressZipCheck obj) : (Data.Aeson..=) "available_payout_methods" (cardAvailablePayoutMethods obj) : (Data.Aeson..=) "brand" (cardBrand obj) : (Data.Aeson..=) "country" (cardCountry obj) : (Data.Aeson..=) "currency" (cardCurrency obj) : (Data.Aeson..=) "customer" (cardCustomer obj) : (Data.Aeson..=) "cvc_check" (cardCvcCheck obj) : (Data.Aeson..=) "default_for_currency" (cardDefaultForCurrency obj) : (Data.Aeson..=) "dynamic_last4" (cardDynamicLast4 obj) : (Data.Aeson..=) "exp_month" (cardExpMonth obj) : (Data.Aeson..=) "exp_year" (cardExpYear obj) : (Data.Aeson..=) "fingerprint" (cardFingerprint obj) : (Data.Aeson..=) "funding" (cardFunding obj) : (Data.Aeson..=) "id" (cardId obj) : (Data.Aeson..=) "last4" (cardLast4 obj) : (Data.Aeson..=) "metadata" (cardMetadata obj) : (Data.Aeson..=) "name" (cardName obj) : (Data.Aeson..=) "object" (cardObject obj) : (Data.Aeson..=) "recipient" (cardRecipient obj) : (Data.Aeson..=) "tokenization_method" (cardTokenizationMethod obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (cardAccount obj) GHC.Base.<> ((Data.Aeson..=) "address_city" (cardAddressCity obj) GHC.Base.<> ((Data.Aeson..=) "address_country" (cardAddressCountry obj) GHC.Base.<> ((Data.Aeson..=) "address_line1" (cardAddressLine1 obj) GHC.Base.<> ((Data.Aeson..=) "address_line1_check" (cardAddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_line2" (cardAddressLine2 obj) GHC.Base.<> ((Data.Aeson..=) "address_state" (cardAddressState obj) GHC.Base.<> ((Data.Aeson..=) "address_zip" (cardAddressZip obj) GHC.Base.<> ((Data.Aeson..=) "address_zip_check" (cardAddressZipCheck obj) GHC.Base.<> ((Data.Aeson..=) "available_payout_methods" (cardAvailablePayoutMethods obj) GHC.Base.<> ((Data.Aeson..=) "brand" (cardBrand obj) GHC.Base.<> ((Data.Aeson..=) "country" (cardCountry obj) GHC.Base.<> ((Data.Aeson..=) "currency" (cardCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (cardCustomer obj) GHC.Base.<> ((Data.Aeson..=) "cvc_check" (cardCvcCheck obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (cardDefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (cardDynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (cardExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (cardExpYear obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (cardFingerprint obj) GHC.Base.<> ((Data.Aeson..=) "funding" (cardFunding obj) GHC.Base.<> ((Data.Aeson..=) "id" (cardId obj) GHC.Base.<> ((Data.Aeson..=) "last4" (cardLast4 obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (cardMetadata obj) GHC.Base.<> ((Data.Aeson..=) "name" (cardName obj) GHC.Base.<> ((Data.Aeson..=) "object" (cardObject obj) GHC.Base.<> ((Data.Aeson..=) "recipient" (cardRecipient obj) GHC.Base.<> (Data.Aeson..=) "tokenization_method" (cardTokenizationMethod obj))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Card
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Card" (\obj -> (((((((((((((((((((((((((((GHC.Base.pure Card GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_payout_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "recipient")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tokenization_method"))
-- | Define the one-of schema cardAccount\'
-- 
-- The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead.
data CardAccount'Variants
    = CardAccount'Account Account | CardAccount'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CardAccount'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CardAccount'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema cardAvailable_payout_methods\'
-- 
-- 
data CardAvailablePayoutMethods'
    = CardAvailablePayoutMethods'EnumOther Data.Aeson.Types.Internal.Value
    | CardAvailablePayoutMethods'EnumTyped GHC.Base.String
    | CardAvailablePayoutMethods'EnumStringInstant
    | CardAvailablePayoutMethods'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CardAvailablePayoutMethods'
    where toJSON (CardAvailablePayoutMethods'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CardAvailablePayoutMethods'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CardAvailablePayoutMethods'EnumStringInstant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant"
          toJSON (CardAvailablePayoutMethods'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON CardAvailablePayoutMethods'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant")
                                          then CardAvailablePayoutMethods'EnumStringInstant
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                then CardAvailablePayoutMethods'EnumStringStandard
                                                else CardAvailablePayoutMethods'EnumOther val)
-- | Define the one-of schema cardCustomer\'
-- 
-- The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.
data CardCustomer'Variants
    = CardCustomer'Customer Customer
    | CardCustomer'DeletedCustomer DeletedCustomer
    | CardCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CardCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CardCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema cardMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data CardMetadata' = CardMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CardMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON CardMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CardMetadata'" (\obj -> GHC.Base.pure CardMetadata')
-- | Defines the enum schema cardObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data CardObject'
    = CardObject'EnumOther Data.Aeson.Types.Internal.Value
    | CardObject'EnumTyped GHC.Base.String
    | CardObject'EnumStringCard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CardObject'
    where toJSON (CardObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CardObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CardObject'EnumStringCard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card"
instance Data.Aeson.FromJSON CardObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card")
                                          then CardObject'EnumStringCard
                                          else CardObject'EnumOther val)
-- | Define the one-of schema cardRecipient\'
-- 
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data CardRecipient'Variants
    = CardRecipient'Recipient Recipient
    | CardRecipient'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CardRecipient'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CardRecipient'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema charge
-- 
-- To charge a credit or a debit card, you create a \`Charge\` object. You can
-- retrieve and refund individual charges as well as list all charges. Charges
-- are identified by a unique, random ID.
-- 
-- Related guide: [Accept a payment with the Charges API](https:\/\/stripe.com\/docs\/payments\/accept-a-payment-charges).
data Charge = Charge {
  -- | amount: Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https:\/\/stripe.com\/docs\/currencies\#zero-decimal) (e.g., 100 cents to charge \$1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is \$0.50 US or [equivalent in charge currency](https:\/\/stripe.com\/docs\/currencies\#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of \$999,999.99).
  chargeAmount :: GHC.Integer.Type.Integer
  -- | amount_refunded: Amount in %s refunded (can be less than the amount attribute on the charge if a partial refund was issued).
  , chargeAmountRefunded :: GHC.Integer.Type.Integer
  -- | application: ID of the Connect application that created the charge.
  , chargeApplication :: (GHC.Maybe.Maybe ChargeApplication'Variants)
  -- | application_fee: The application fee (if any) for the charge. [See the Connect documentation](https:\/\/stripe.com\/docs\/connect\/direct-charges\#collecting-fees) for details.
  , chargeApplicationFee :: (GHC.Maybe.Maybe ChargeApplicationFee'Variants)
  -- | application_fee_amount: The amount of the application fee (if any) for the charge. [See the Connect documentation](https:\/\/stripe.com\/docs\/connect\/direct-charges\#collecting-fees) for details.
  , chargeApplicationFeeAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | balance_transaction: ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).
  , chargeBalanceTransaction :: (GHC.Maybe.Maybe ChargeBalanceTransaction'Variants)
  -- | billing_details: 
  , chargeBillingDetails :: BillingDetails
  -- | captured: If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.
  , chargeCaptured :: GHC.Types.Bool
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , chargeCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , chargeCurrency :: GHC.Base.String
  -- | customer: ID of the customer this charge is for if one exists.
  , chargeCustomer :: (GHC.Maybe.Maybe ChargeCustomer'Variants)
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 40000
  , chargeDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | disputed: Whether the charge has been disputed.
  , chargeDisputed :: GHC.Types.Bool
  -- | failure_code: Error code explaining reason for charge failure if available (see [the errors section](https:\/\/stripe.com\/docs\/api\#errors) for a list of codes).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeFailureCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | failure_message: Message to user further explaining reason for charge failure if available.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeFailureMessage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | fraud_details: Information on fraud assessments for the charge.
  , chargeFraudDetails :: (GHC.Maybe.Maybe ChargeFraudDetails')
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeId :: GHC.Base.String
  -- | invoice: ID of the invoice this charge is for if one exists.
  , chargeInvoice :: (GHC.Maybe.Maybe ChargeInvoice'Variants)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , chargeLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , chargeMetadata :: ChargeMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , chargeObject :: ChargeObject'
  -- | on_behalf_of: The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the [Connect documentation](https:\/\/stripe.com\/docs\/connect\/charges-transfers) for details.
  , chargeOnBehalfOf :: (GHC.Maybe.Maybe ChargeOnBehalfOf'Variants)
  -- | order: ID of the order this charge is for if one exists.
  , chargeOrder :: (GHC.Maybe.Maybe ChargeOrder'Variants)
  -- | outcome: Details about whether the payment was accepted, and why. See [understanding declines](https:\/\/stripe.com\/docs\/declines) for details.
  , chargeOutcome :: (GHC.Maybe.Maybe ChargeOutcome')
  -- | paid: \`true\` if the charge succeeded, or was successfully authorized for later capture.
  , chargePaid :: GHC.Types.Bool
  -- | payment_intent: ID of the PaymentIntent associated with this charge, if one exists.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargePaymentIntent :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | payment_method: ID of the payment method used in this charge.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargePaymentMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | payment_method_details: Details about the payment method at the time of the transaction.
  , chargePaymentMethodDetails :: (GHC.Maybe.Maybe ChargePaymentMethodDetails')
  -- | receipt_email: This is the email address that the receipt for this charge was sent to.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeReceiptEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | receipt_number: This is the transaction number that appears on email receipts sent for this charge. This attribute will be \`null\` until a receipt has been sent.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeReceiptNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | receipt_url: This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt will be stylized as an Invoice receipt.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeReceiptUrl :: GHC.Base.String
  -- | refunded: Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.
  , chargeRefunded :: GHC.Types.Bool
  -- | refunds: A list of refunds that have been applied to the charge.
  , chargeRefunds :: ChargeRefunds'
  -- | review: ID of the review associated with this charge if one exists.
  , chargeReview :: (GHC.Maybe.Maybe ChargeReview'Variants)
  -- | shipping: Shipping information for the charge.
  , chargeShipping :: (GHC.Maybe.Maybe ChargeShipping')
  -- | source_transfer: The transfer ID which created this charge. Only present if the charge came from another Stripe account. [See the Connect documentation](https:\/\/stripe.com\/docs\/connect\/destination-charges) for details.
  , chargeSourceTransfer :: (GHC.Maybe.Maybe ChargeSourceTransfer'Variants)
  -- | statement_descriptor: For card charges, use \`statement_descriptor_suffix\` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeStatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | statement_descriptor_suffix: Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeStatementDescriptorSuffix :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: The status of the payment is either \`succeeded\`, \`pending\`, or \`failed\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeStatus :: GHC.Base.String
  -- | transfer: ID of the transfer to the \`destination\` account (only applicable if the charge was created using the \`destination\` parameter).
  , chargeTransfer :: (GHC.Maybe.Maybe ChargeTransfer'Variants)
  -- | transfer_data: An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https:\/\/stripe.com\/docs\/connect\/destination-charges) for details.
  , chargeTransferData :: (GHC.Maybe.Maybe ChargeTransferData')
  -- | transfer_group: A string that identifies this transaction as part of a group. See the [Connect documentation](https:\/\/stripe.com\/docs\/connect\/charges-transfers\#transfer-options) for details.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeTransferGroup :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Charge
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (chargeAmount obj) : (Data.Aeson..=) "amount_refunded" (chargeAmountRefunded obj) : (Data.Aeson..=) "application" (chargeApplication obj) : (Data.Aeson..=) "application_fee" (chargeApplicationFee obj) : (Data.Aeson..=) "application_fee_amount" (chargeApplicationFeeAmount obj) : (Data.Aeson..=) "balance_transaction" (chargeBalanceTransaction obj) : (Data.Aeson..=) "billing_details" (chargeBillingDetails obj) : (Data.Aeson..=) "captured" (chargeCaptured obj) : (Data.Aeson..=) "created" (chargeCreated obj) : (Data.Aeson..=) "currency" (chargeCurrency obj) : (Data.Aeson..=) "customer" (chargeCustomer obj) : (Data.Aeson..=) "description" (chargeDescription obj) : (Data.Aeson..=) "disputed" (chargeDisputed obj) : (Data.Aeson..=) "failure_code" (chargeFailureCode obj) : (Data.Aeson..=) "failure_message" (chargeFailureMessage obj) : (Data.Aeson..=) "fraud_details" (chargeFraudDetails obj) : (Data.Aeson..=) "id" (chargeId obj) : (Data.Aeson..=) "invoice" (chargeInvoice obj) : (Data.Aeson..=) "livemode" (chargeLivemode obj) : (Data.Aeson..=) "metadata" (chargeMetadata obj) : (Data.Aeson..=) "object" (chargeObject obj) : (Data.Aeson..=) "on_behalf_of" (chargeOnBehalfOf obj) : (Data.Aeson..=) "order" (chargeOrder obj) : (Data.Aeson..=) "outcome" (chargeOutcome obj) : (Data.Aeson..=) "paid" (chargePaid obj) : (Data.Aeson..=) "payment_intent" (chargePaymentIntent obj) : (Data.Aeson..=) "payment_method" (chargePaymentMethod obj) : (Data.Aeson..=) "payment_method_details" (chargePaymentMethodDetails obj) : (Data.Aeson..=) "receipt_email" (chargeReceiptEmail obj) : (Data.Aeson..=) "receipt_number" (chargeReceiptNumber obj) : (Data.Aeson..=) "receipt_url" (chargeReceiptUrl obj) : (Data.Aeson..=) "refunded" (chargeRefunded obj) : (Data.Aeson..=) "refunds" (chargeRefunds obj) : (Data.Aeson..=) "review" (chargeReview obj) : (Data.Aeson..=) "shipping" (chargeShipping obj) : (Data.Aeson..=) "source_transfer" (chargeSourceTransfer obj) : (Data.Aeson..=) "statement_descriptor" (chargeStatementDescriptor obj) : (Data.Aeson..=) "statement_descriptor_suffix" (chargeStatementDescriptorSuffix obj) : (Data.Aeson..=) "status" (chargeStatus obj) : (Data.Aeson..=) "transfer" (chargeTransfer obj) : (Data.Aeson..=) "transfer_data" (chargeTransferData obj) : (Data.Aeson..=) "transfer_group" (chargeTransferGroup obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (chargeAmount obj) GHC.Base.<> ((Data.Aeson..=) "amount_refunded" (chargeAmountRefunded obj) GHC.Base.<> ((Data.Aeson..=) "application" (chargeApplication obj) GHC.Base.<> ((Data.Aeson..=) "application_fee" (chargeApplicationFee obj) GHC.Base.<> ((Data.Aeson..=) "application_fee_amount" (chargeApplicationFeeAmount obj) GHC.Base.<> ((Data.Aeson..=) "balance_transaction" (chargeBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "billing_details" (chargeBillingDetails obj) GHC.Base.<> ((Data.Aeson..=) "captured" (chargeCaptured obj) GHC.Base.<> ((Data.Aeson..=) "created" (chargeCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (chargeCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (chargeCustomer obj) GHC.Base.<> ((Data.Aeson..=) "description" (chargeDescription obj) GHC.Base.<> ((Data.Aeson..=) "disputed" (chargeDisputed obj) GHC.Base.<> ((Data.Aeson..=) "failure_code" (chargeFailureCode obj) GHC.Base.<> ((Data.Aeson..=) "failure_message" (chargeFailureMessage obj) GHC.Base.<> ((Data.Aeson..=) "fraud_details" (chargeFraudDetails obj) GHC.Base.<> ((Data.Aeson..=) "id" (chargeId obj) GHC.Base.<> ((Data.Aeson..=) "invoice" (chargeInvoice obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (chargeLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (chargeMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (chargeObject obj) GHC.Base.<> ((Data.Aeson..=) "on_behalf_of" (chargeOnBehalfOf obj) GHC.Base.<> ((Data.Aeson..=) "order" (chargeOrder obj) GHC.Base.<> ((Data.Aeson..=) "outcome" (chargeOutcome obj) GHC.Base.<> ((Data.Aeson..=) "paid" (chargePaid obj) GHC.Base.<> ((Data.Aeson..=) "payment_intent" (chargePaymentIntent obj) GHC.Base.<> ((Data.Aeson..=) "payment_method" (chargePaymentMethod obj) GHC.Base.<> ((Data.Aeson..=) "payment_method_details" (chargePaymentMethodDetails obj) GHC.Base.<> ((Data.Aeson..=) "receipt_email" (chargeReceiptEmail obj) GHC.Base.<> ((Data.Aeson..=) "receipt_number" (chargeReceiptNumber obj) GHC.Base.<> ((Data.Aeson..=) "receipt_url" (chargeReceiptUrl obj) GHC.Base.<> ((Data.Aeson..=) "refunded" (chargeRefunded obj) GHC.Base.<> ((Data.Aeson..=) "refunds" (chargeRefunds obj) GHC.Base.<> ((Data.Aeson..=) "review" (chargeReview obj) GHC.Base.<> ((Data.Aeson..=) "shipping" (chargeShipping obj) GHC.Base.<> ((Data.Aeson..=) "source_transfer" (chargeSourceTransfer obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (chargeStatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor_suffix" (chargeStatementDescriptorSuffix obj) GHC.Base.<> ((Data.Aeson..=) "status" (chargeStatus obj) GHC.Base.<> ((Data.Aeson..=) "transfer" (chargeTransfer obj) GHC.Base.<> ((Data.Aeson..=) "transfer_data" (chargeTransferData obj) GHC.Base.<> (Data.Aeson..=) "transfer_group" (chargeTransferGroup obj))))))))))))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Charge
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Charge" (\obj -> (((((((((((((((((((((((((((((((((((((((((GHC.Base.pure Charge GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount_refunded")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application_fee")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application_fee_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "billing_details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "captured")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "disputed")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "failure_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "failure_message")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fraud_details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "on_behalf_of")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "order")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "outcome")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "paid")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method_details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receipt_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receipt_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "receipt_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "refunded")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "refunds")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "review")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor_suffix")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transfer_data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transfer_group"))
-- | Define the one-of schema chargeApplication\'
-- 
-- ID of the Connect application that created the charge.
data ChargeApplication'Variants
    = ChargeApplication'Application Application
    | ChargeApplication'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeApplication'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeApplication'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema chargeApplication_fee\'
-- 
-- The application fee (if any) for the charge. [See the Connect documentation](https:\/\/stripe.com\/docs\/connect\/direct-charges\#collecting-fees) for details.
data ChargeApplicationFee'Variants
    = ChargeApplicationFee'ApplicationFee ApplicationFee
    | ChargeApplicationFee'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeApplicationFee'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeApplicationFee'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema chargeBalance_transaction\'
-- 
-- ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).
data ChargeBalanceTransaction'Variants
    = ChargeBalanceTransaction'BalanceTransaction BalanceTransaction
    | ChargeBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema chargeCustomer\'
-- 
-- ID of the customer this charge is for if one exists.
data ChargeCustomer'Variants
    = ChargeCustomer'Customer Customer
    | ChargeCustomer'DeletedCustomer DeletedCustomer
    | ChargeCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema chargeFraud_details\'
-- 
-- Information on fraud assessments for the charge.
data ChargeFraudDetails' = ChargeFraudDetails' {
  -- | stripe_report: Assessments from Stripe. If set, the value is \`fraudulent\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  chargeFraudDetails'StripeReport :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | user_report: Assessments reported by you. If set, possible values of are \`safe\` and \`fraudulent\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeFraudDetails'UserReport :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ChargeFraudDetails'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "stripe_report" (chargeFraudDetails'StripeReport obj) : (Data.Aeson..=) "user_report" (chargeFraudDetails'UserReport obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "stripe_report" (chargeFraudDetails'StripeReport obj) GHC.Base.<> (Data.Aeson..=) "user_report" (chargeFraudDetails'UserReport obj))
instance Data.Aeson.Types.FromJSON.FromJSON ChargeFraudDetails'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ChargeFraudDetails'" (\obj -> (GHC.Base.pure ChargeFraudDetails' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "stripe_report")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "user_report"))
-- | Define the one-of schema chargeInvoice\'
-- 
-- ID of the invoice this charge is for if one exists.
data ChargeInvoice'Variants
    = ChargeInvoice'Invoice Invoice
    | ChargeInvoice'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeInvoice'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeInvoice'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema chargeMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data ChargeMetadata' = ChargeMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ChargeMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON ChargeMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ChargeMetadata'" (\obj -> GHC.Base.pure ChargeMetadata')
-- | Defines the enum schema chargeObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data ChargeObject'
    = ChargeObject'EnumOther Data.Aeson.Types.Internal.Value
    | ChargeObject'EnumTyped GHC.Base.String
    | ChargeObject'EnumStringCharge
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ChargeObject'
    where toJSON (ChargeObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ChargeObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ChargeObject'EnumStringCharge) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge"
instance Data.Aeson.FromJSON ChargeObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge")
                                          then ChargeObject'EnumStringCharge
                                          else ChargeObject'EnumOther val)
-- | Define the one-of schema chargeOn_behalf_of\'
-- 
-- The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the [Connect documentation](https:\/\/stripe.com\/docs\/connect\/charges-transfers) for details.
data ChargeOnBehalfOf'Variants
    = ChargeOnBehalfOf'Account Account
    | ChargeOnBehalfOf'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeOnBehalfOf'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeOnBehalfOf'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema chargeOrder\'
-- 
-- ID of the order this charge is for if one exists.
data ChargeOrder'Variants
    = ChargeOrder'Order Order | ChargeOrder'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeOrder'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeOrder'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema chargeOutcome\'
-- 
-- Details about whether the payment was accepted, and why. See [understanding declines](https:\\\/\\\/stripe.com\\\/docs\\\/declines) for details.
data ChargeOutcome' = ChargeOutcome' {
  -- | network_status: Possible values are \`approved_by_network\`, \`declined_by_network\`, \`not_sent_to_network\`, and \`reversed_after_approval\`. The value \`reversed_after_approval\` indicates the payment was [blocked by Stripe](https:\/\/stripe.com\/docs\/declines\#blocked-payments) after bank authorization, and may temporarily appear as \"pending\" on a cardholder\'s statement.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  chargeOutcome'NetworkStatus :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | reason: An enumerated value providing a more detailed explanation of the outcome\'s \`type\`. Charges blocked by Radar\'s default block rule have the value \`highest_risk_level\`. Charges placed in review by Radar\'s default review rule have the value \`elevated_risk_level\`. Charges authorized, blocked, or placed in review by custom rules have the value \`rule\`. See [understanding declines](https:\/\/stripe.com\/docs\/declines) for more details.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeOutcome'Reason :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | risk_level: Stripe\'s evaluation of the riskiness of the payment. Possible values for evaluated payments are \`normal\`, \`elevated\`, \`highest\`. For non-card payments, and card-based payments predating the public assignment of risk levels, this field will have the value \`not_assessed\`. In the event of an error in the evaluation, this field will have the value \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeOutcome'RiskLevel :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | risk_score: Stripe\'s evaluation of the riskiness of the payment. Possible values for evaluated payments are between 0 and 100. For non-card payments, card-based payments predating the public assignment of risk scores, or in the event of an error during evaluation, this field will not be present. This field is only available with Radar for Fraud Teams.
  , chargeOutcome'RiskScore :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | rule: The ID of the Radar rule that matched the payment, if applicable.
  , chargeOutcome'Rule :: (GHC.Maybe.Maybe ChargeOutcome'Rule'Variants)
  -- | seller_message: A human-readable description of the outcome type and reason, designed for you (the recipient of the payment), not your customer.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeOutcome'SellerMessage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | type: Possible values are \`authorized\`, \`manual_review\`, \`issuer_declined\`, \`blocked\`, and \`invalid\`. See [understanding declines](https:\/\/stripe.com\/docs\/declines) and [Radar reviews](https:\/\/stripe.com\/docs\/radar\/reviews) for details.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeOutcome'Type :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ChargeOutcome'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "network_status" (chargeOutcome'NetworkStatus obj) : (Data.Aeson..=) "reason" (chargeOutcome'Reason obj) : (Data.Aeson..=) "risk_level" (chargeOutcome'RiskLevel obj) : (Data.Aeson..=) "risk_score" (chargeOutcome'RiskScore obj) : (Data.Aeson..=) "rule" (chargeOutcome'Rule obj) : (Data.Aeson..=) "seller_message" (chargeOutcome'SellerMessage obj) : (Data.Aeson..=) "type" (chargeOutcome'Type obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "network_status" (chargeOutcome'NetworkStatus obj) GHC.Base.<> ((Data.Aeson..=) "reason" (chargeOutcome'Reason obj) GHC.Base.<> ((Data.Aeson..=) "risk_level" (chargeOutcome'RiskLevel obj) GHC.Base.<> ((Data.Aeson..=) "risk_score" (chargeOutcome'RiskScore obj) GHC.Base.<> ((Data.Aeson..=) "rule" (chargeOutcome'Rule obj) GHC.Base.<> ((Data.Aeson..=) "seller_message" (chargeOutcome'SellerMessage obj) GHC.Base.<> (Data.Aeson..=) "type" (chargeOutcome'Type obj)))))))
instance Data.Aeson.Types.FromJSON.FromJSON ChargeOutcome'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ChargeOutcome'" (\obj -> ((((((GHC.Base.pure ChargeOutcome' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "network_status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "risk_level")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "risk_score")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "rule")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "seller_message")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Define the one-of schema chargeOutcome\'Rule\'
-- 
-- The ID of the Radar rule that matched the payment, if applicable.
data ChargeOutcome'Rule'Variants
    = ChargeOutcome'Rule'Rule Rule
    | ChargeOutcome'Rule'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeOutcome'Rule'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeOutcome'Rule'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema chargePayment_method_details\'
-- 
-- Details about the payment method at the time of the transaction.
data ChargePaymentMethodDetails' = ChargePaymentMethodDetails' {
  -- | ach_credit_transfer: 
  chargePaymentMethodDetails'AchCreditTransfer :: (GHC.Maybe.Maybe PaymentMethodDetailsAchCreditTransfer)
  -- | ach_debit: 
  , chargePaymentMethodDetails'AchDebit :: (GHC.Maybe.Maybe PaymentMethodDetailsAchDebit)
  -- | alipay: 
  , chargePaymentMethodDetails'Alipay :: (GHC.Maybe.Maybe PaymentMethodDetailsAlipay)
  -- | bancontact: 
  , chargePaymentMethodDetails'Bancontact :: (GHC.Maybe.Maybe PaymentMethodDetailsBancontact)
  -- | card: 
  , chargePaymentMethodDetails'Card :: (GHC.Maybe.Maybe PaymentMethodDetailsCard)
  -- | card_present: 
  , chargePaymentMethodDetails'CardPresent :: (GHC.Maybe.Maybe PaymentMethodDetailsCardPresent)
  -- | eps: 
  , chargePaymentMethodDetails'Eps :: (GHC.Maybe.Maybe PaymentMethodDetailsEps)
  -- | fpx: 
  , chargePaymentMethodDetails'Fpx :: (GHC.Maybe.Maybe PaymentMethodDetailsFpx)
  -- | giropay: 
  , chargePaymentMethodDetails'Giropay :: (GHC.Maybe.Maybe PaymentMethodDetailsGiropay)
  -- | ideal: 
  , chargePaymentMethodDetails'Ideal :: (GHC.Maybe.Maybe PaymentMethodDetailsIdeal)
  -- | klarna: 
  , chargePaymentMethodDetails'Klarna :: (GHC.Maybe.Maybe PaymentMethodDetailsKlarna)
  -- | multibanco: 
  , chargePaymentMethodDetails'Multibanco :: (GHC.Maybe.Maybe PaymentMethodDetailsMultibanco)
  -- | p24: 
  , chargePaymentMethodDetails'P24 :: (GHC.Maybe.Maybe PaymentMethodDetailsP24)
  -- | sepa_debit: 
  , chargePaymentMethodDetails'SepaDebit :: (GHC.Maybe.Maybe PaymentMethodDetailsSepaDebit)
  -- | sofort: 
  , chargePaymentMethodDetails'Sofort :: (GHC.Maybe.Maybe PaymentMethodDetailsSofort)
  -- | stripe_account: 
  , chargePaymentMethodDetails'StripeAccount :: (GHC.Maybe.Maybe PaymentMethodDetailsStripeAccount)
  -- | type: The type of transaction-specific details of the payment method used in the payment, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`klarna\`, \`multibanco\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`stripe_account\`, or \`wechat\`.
  -- An additional hash is included on \`payment_method_details\` with a name matching this value.
  -- It contains information specific to the payment method.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargePaymentMethodDetails'Type :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | wechat: 
  , chargePaymentMethodDetails'Wechat :: (GHC.Maybe.Maybe PaymentMethodDetailsWechat)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ChargePaymentMethodDetails'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "ach_credit_transfer" (chargePaymentMethodDetails'AchCreditTransfer obj) : (Data.Aeson..=) "ach_debit" (chargePaymentMethodDetails'AchDebit obj) : (Data.Aeson..=) "alipay" (chargePaymentMethodDetails'Alipay obj) : (Data.Aeson..=) "bancontact" (chargePaymentMethodDetails'Bancontact obj) : (Data.Aeson..=) "card" (chargePaymentMethodDetails'Card obj) : (Data.Aeson..=) "card_present" (chargePaymentMethodDetails'CardPresent obj) : (Data.Aeson..=) "eps" (chargePaymentMethodDetails'Eps obj) : (Data.Aeson..=) "fpx" (chargePaymentMethodDetails'Fpx obj) : (Data.Aeson..=) "giropay" (chargePaymentMethodDetails'Giropay obj) : (Data.Aeson..=) "ideal" (chargePaymentMethodDetails'Ideal obj) : (Data.Aeson..=) "klarna" (chargePaymentMethodDetails'Klarna obj) : (Data.Aeson..=) "multibanco" (chargePaymentMethodDetails'Multibanco obj) : (Data.Aeson..=) "p24" (chargePaymentMethodDetails'P24 obj) : (Data.Aeson..=) "sepa_debit" (chargePaymentMethodDetails'SepaDebit obj) : (Data.Aeson..=) "sofort" (chargePaymentMethodDetails'Sofort obj) : (Data.Aeson..=) "stripe_account" (chargePaymentMethodDetails'StripeAccount obj) : (Data.Aeson..=) "type" (chargePaymentMethodDetails'Type obj) : (Data.Aeson..=) "wechat" (chargePaymentMethodDetails'Wechat obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "ach_credit_transfer" (chargePaymentMethodDetails'AchCreditTransfer obj) GHC.Base.<> ((Data.Aeson..=) "ach_debit" (chargePaymentMethodDetails'AchDebit obj) GHC.Base.<> ((Data.Aeson..=) "alipay" (chargePaymentMethodDetails'Alipay obj) GHC.Base.<> ((Data.Aeson..=) "bancontact" (chargePaymentMethodDetails'Bancontact obj) GHC.Base.<> ((Data.Aeson..=) "card" (chargePaymentMethodDetails'Card obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (chargePaymentMethodDetails'CardPresent obj) GHC.Base.<> ((Data.Aeson..=) "eps" (chargePaymentMethodDetails'Eps obj) GHC.Base.<> ((Data.Aeson..=) "fpx" (chargePaymentMethodDetails'Fpx obj) GHC.Base.<> ((Data.Aeson..=) "giropay" (chargePaymentMethodDetails'Giropay obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (chargePaymentMethodDetails'Ideal obj) GHC.Base.<> ((Data.Aeson..=) "klarna" (chargePaymentMethodDetails'Klarna obj) GHC.Base.<> ((Data.Aeson..=) "multibanco" (chargePaymentMethodDetails'Multibanco obj) GHC.Base.<> ((Data.Aeson..=) "p24" (chargePaymentMethodDetails'P24 obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (chargePaymentMethodDetails'SepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "sofort" (chargePaymentMethodDetails'Sofort obj) GHC.Base.<> ((Data.Aeson..=) "stripe_account" (chargePaymentMethodDetails'StripeAccount obj) GHC.Base.<> ((Data.Aeson..=) "type" (chargePaymentMethodDetails'Type obj) GHC.Base.<> (Data.Aeson..=) "wechat" (chargePaymentMethodDetails'Wechat obj))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON ChargePaymentMethodDetails'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ChargePaymentMethodDetails'" (\obj -> (((((((((((((((((GHC.Base.pure ChargePaymentMethodDetails' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fpx")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "stripe_account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat"))
-- | Defines the data type for the schema chargeRefunds\'
-- 
-- A list of refunds that have been applied to the charge.
data ChargeRefunds' = ChargeRefunds' {
  -- | data: Details about each object.
  chargeRefunds'Data :: ([] Refund)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , chargeRefunds'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , chargeRefunds'Object :: ChargeRefunds'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeRefunds'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ChargeRefunds'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (chargeRefunds'Data obj) : (Data.Aeson..=) "has_more" (chargeRefunds'HasMore obj) : (Data.Aeson..=) "object" (chargeRefunds'Object obj) : (Data.Aeson..=) "url" (chargeRefunds'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (chargeRefunds'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (chargeRefunds'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (chargeRefunds'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (chargeRefunds'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON ChargeRefunds'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ChargeRefunds'" (\obj -> (((GHC.Base.pure ChargeRefunds' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema chargeRefunds\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data ChargeRefunds'Object'
    = ChargeRefunds'Object'EnumOther Data.Aeson.Types.Internal.Value
    | ChargeRefunds'Object'EnumTyped GHC.Base.String
    | ChargeRefunds'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ChargeRefunds'Object'
    where toJSON (ChargeRefunds'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ChargeRefunds'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ChargeRefunds'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON ChargeRefunds'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then ChargeRefunds'Object'EnumStringList
                                          else ChargeRefunds'Object'EnumOther val)
-- | Define the one-of schema chargeReview\'
-- 
-- ID of the review associated with this charge if one exists.
data ChargeReview'Variants
    = ChargeReview'Review Review | ChargeReview'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeReview'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeReview'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema chargeShipping\'
-- 
-- Shipping information for the charge.
data ChargeShipping' = ChargeShipping' {
  -- | address: 
  chargeShipping'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
  , chargeShipping'Carrier :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Recipient name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeShipping'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Recipient phone (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , chargeShipping'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | 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
  , chargeShipping'TrackingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ChargeShipping'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (chargeShipping'Address obj) : (Data.Aeson..=) "carrier" (chargeShipping'Carrier obj) : (Data.Aeson..=) "name" (chargeShipping'Name obj) : (Data.Aeson..=) "phone" (chargeShipping'Phone obj) : (Data.Aeson..=) "tracking_number" (chargeShipping'TrackingNumber obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (chargeShipping'Address obj) GHC.Base.<> ((Data.Aeson..=) "carrier" (chargeShipping'Carrier obj) GHC.Base.<> ((Data.Aeson..=) "name" (chargeShipping'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (chargeShipping'Phone obj) GHC.Base.<> (Data.Aeson..=) "tracking_number" (chargeShipping'TrackingNumber obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON ChargeShipping'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ChargeShipping'" (\obj -> ((((GHC.Base.pure ChargeShipping' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "carrier")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tracking_number"))
-- | Define the one-of schema chargeSource_transfer\'
-- 
-- The transfer ID which created this charge. Only present if the charge came from another Stripe account. [See the Connect documentation](https:\/\/stripe.com\/docs\/connect\/destination-charges) for details.
data ChargeSourceTransfer'Variants
    = ChargeSourceTransfer'Transfer Transfer
    | ChargeSourceTransfer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeSourceTransfer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeSourceTransfer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema chargeTransfer\'
-- 
-- ID of the transfer to the \`destination\` account (only applicable if the charge was created using the \`destination\` parameter).
data ChargeTransfer'Variants
    = ChargeTransfer'Transfer Transfer
    | ChargeTransfer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeTransfer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeTransfer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema chargeTransfer_data\'
-- 
-- An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https:\\\/\\\/stripe.com\\\/docs\\\/connect\\\/destination-charges) for details.
data ChargeTransferData' = ChargeTransferData' {
  -- | amount: The amount transferred to the destination account, if specified. By default, the entire charge amount is transferred to the destination account.
  chargeTransferData'Amount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | destination: ID of an existing, connected Stripe account to transfer funds to if \`transfer_data\` was specified in the charge request.
  , chargeTransferData'Destination :: (GHC.Maybe.Maybe ChargeTransferData'Destination'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ChargeTransferData'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (chargeTransferData'Amount obj) : (Data.Aeson..=) "destination" (chargeTransferData'Destination obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (chargeTransferData'Amount obj) GHC.Base.<> (Data.Aeson..=) "destination" (chargeTransferData'Destination obj))
instance Data.Aeson.Types.FromJSON.FromJSON ChargeTransferData'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ChargeTransferData'" (\obj -> (GHC.Base.pure ChargeTransferData' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "destination"))
-- | Define the one-of schema chargeTransfer_data\'Destination\'
-- 
-- ID of an existing, connected Stripe account to transfer funds to if \`transfer_data\` was specified in the charge request.
data ChargeTransferData'Destination'Variants
    = ChargeTransferData'Destination'Account Account
    | ChargeTransferData'Destination'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeTransferData'Destination'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeTransferData'Destination'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema charge_transfer_data
-- 
-- 
data ChargeTransferData = ChargeTransferData {
  -- | amount: The amount transferred to the destination account, if specified. By default, the entire charge amount is transferred to the destination account.
  chargeTransferDataAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | destination: ID of an existing, connected Stripe account to transfer funds to if \`transfer_data\` was specified in the charge request.
  , chargeTransferDataDestination :: ChargeTransferDataDestination'Variants
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ChargeTransferData
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (chargeTransferDataAmount obj) : (Data.Aeson..=) "destination" (chargeTransferDataDestination obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (chargeTransferDataAmount obj) GHC.Base.<> (Data.Aeson..=) "destination" (chargeTransferDataDestination obj))
instance Data.Aeson.Types.FromJSON.FromJSON ChargeTransferData
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ChargeTransferData" (\obj -> (GHC.Base.pure ChargeTransferData GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "destination"))
-- | Define the one-of schema charge_transfer_dataDestination\'
-- 
-- ID of an existing, connected Stripe account to transfer funds to if \`transfer_data\` was specified in the charge request.
data ChargeTransferDataDestination'Variants
    = ChargeTransferDataDestination'Account Account
    | ChargeTransferDataDestination'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ChargeTransferDataDestination'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ChargeTransferDataDestination'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema checkout.session
-- 
-- 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 {
  -- | billing_address_collection: The value (\`auto\` or \`required\`) for whether Checkout collected the
  -- customer\'s billing address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  checkout'sessionBillingAddressCollection :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | 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'sessionCancelUrl :: GHC.Base.String
  -- | 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'sessionClientReferenceId :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | 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 session unless an existing customer was provided when
  -- the session was created.
  , checkout'sessionCustomer :: (GHC.Maybe.Maybe Checkout'sessionCustomer'Variants)
  -- | 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 a session is
  -- complete, use the \`customer\` field.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , checkout'sessionCustomerEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | display_items: The line items, plans, or SKUs purchased by the customer.
  , checkout'sessionDisplayItems :: (GHC.Maybe.Maybe ([] CheckoutSessionDisplayItem))
  -- | id: Unique identifier for the object. Used to pass to \`redirectToCheckout\`
  -- in Stripe.js.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , checkout'sessionId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , 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'sessionLocale :: (GHC.Maybe.Maybe Checkout'sessionLocale')
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , checkout'sessionMetadata :: (GHC.Maybe.Maybe Checkout'sessionMetadata')
  -- | mode: The mode of the Checkout Session, one of \`payment\`, \`setup\`, or \`subscription\`.
  , checkout'sessionMode :: (GHC.Maybe.Maybe Checkout'sessionMode')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , checkout'sessionObject :: Checkout'sessionObject'
  -- | payment_intent: The ID of the PaymentIntent for Checkout Sessions in \`payment\` mode.
  , checkout'sessionPaymentIntent :: (GHC.Maybe.Maybe Checkout'sessionPaymentIntent'Variants)
  -- | payment_method_types: A list of the types of payment methods (e.g. card) this Checkout
  -- Session is allowed to accept.
  , checkout'sessionPaymentMethodTypes :: ([] GHC.Base.String)
  -- | setup_intent: The ID of the SetupIntent for Checkout Sessions in \`setup\` mode.
  , checkout'sessionSetupIntent :: (GHC.Maybe.Maybe Checkout'sessionSetupIntent'Variants)
  -- | 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'sessionSubmitType :: (GHC.Maybe.Maybe Checkout'sessionSubmitType')
  -- | subscription: The ID of the subscription for Checkout Sessions in \`subscription\` mode.
  , 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'sessionSuccessUrl :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Checkout'session
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_address_collection" (checkout'sessionBillingAddressCollection obj) : (Data.Aeson..=) "cancel_url" (checkout'sessionCancelUrl obj) : (Data.Aeson..=) "client_reference_id" (checkout'sessionClientReferenceId obj) : (Data.Aeson..=) "customer" (checkout'sessionCustomer obj) : (Data.Aeson..=) "customer_email" (checkout'sessionCustomerEmail obj) : (Data.Aeson..=) "display_items" (checkout'sessionDisplayItems obj) : (Data.Aeson..=) "id" (checkout'sessionId obj) : (Data.Aeson..=) "livemode" (checkout'sessionLivemode obj) : (Data.Aeson..=) "locale" (checkout'sessionLocale obj) : (Data.Aeson..=) "metadata" (checkout'sessionMetadata obj) : (Data.Aeson..=) "mode" (checkout'sessionMode obj) : (Data.Aeson..=) "object" (checkout'sessionObject obj) : (Data.Aeson..=) "payment_intent" (checkout'sessionPaymentIntent obj) : (Data.Aeson..=) "payment_method_types" (checkout'sessionPaymentMethodTypes obj) : (Data.Aeson..=) "setup_intent" (checkout'sessionSetupIntent obj) : (Data.Aeson..=) "submit_type" (checkout'sessionSubmitType obj) : (Data.Aeson..=) "subscription" (checkout'sessionSubscription obj) : (Data.Aeson..=) "success_url" (checkout'sessionSuccessUrl obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_address_collection" (checkout'sessionBillingAddressCollection obj) GHC.Base.<> ((Data.Aeson..=) "cancel_url" (checkout'sessionCancelUrl obj) GHC.Base.<> ((Data.Aeson..=) "client_reference_id" (checkout'sessionClientReferenceId obj) GHC.Base.<> ((Data.Aeson..=) "customer" (checkout'sessionCustomer obj) GHC.Base.<> ((Data.Aeson..=) "customer_email" (checkout'sessionCustomerEmail obj) GHC.Base.<> ((Data.Aeson..=) "display_items" (checkout'sessionDisplayItems obj) GHC.Base.<> ((Data.Aeson..=) "id" (checkout'sessionId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (checkout'sessionLivemode obj) GHC.Base.<> ((Data.Aeson..=) "locale" (checkout'sessionLocale obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (checkout'sessionMetadata obj) GHC.Base.<> ((Data.Aeson..=) "mode" (checkout'sessionMode obj) GHC.Base.<> ((Data.Aeson..=) "object" (checkout'sessionObject obj) GHC.Base.<> ((Data.Aeson..=) "payment_intent" (checkout'sessionPaymentIntent obj) GHC.Base.<> ((Data.Aeson..=) "payment_method_types" (checkout'sessionPaymentMethodTypes obj) GHC.Base.<> ((Data.Aeson..=) "setup_intent" (checkout'sessionSetupIntent obj) GHC.Base.<> ((Data.Aeson..=) "submit_type" (checkout'sessionSubmitType obj) GHC.Base.<> ((Data.Aeson..=) "subscription" (checkout'sessionSubscription obj) GHC.Base.<> (Data.Aeson..=) "success_url" (checkout'sessionSuccessUrl obj))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Checkout'session
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Checkout'session" (\obj -> (((((((((((((((((GHC.Base.pure Checkout'session GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_address_collection")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "cancel_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_reference_id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "display_items")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "locale")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "mode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "payment_method_types")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "setup_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "submit_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "success_url"))
-- | Define the one-of schema checkout.sessionCustomer\'
-- 
-- 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 session unless an existing customer was provided when
-- the session was created.
data Checkout'sessionCustomer'Variants
    = Checkout'sessionCustomer'Customer Customer
    | Checkout'sessionCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Checkout'sessionCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Checkout'sessionCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema checkout.sessionLocale\'
-- 
-- The IETF language tag of the locale Checkout is displayed in. If blank or \`auto\`, the browser\'s locale is used.
data Checkout'sessionLocale'
    = Checkout'sessionLocale'EnumOther Data.Aeson.Types.Internal.Value
    | Checkout'sessionLocale'EnumTyped GHC.Base.String
    | Checkout'sessionLocale'EnumStringAuto
    | Checkout'sessionLocale'EnumStringDa
    | Checkout'sessionLocale'EnumStringDe
    | Checkout'sessionLocale'EnumStringEn
    | Checkout'sessionLocale'EnumStringEs
    | Checkout'sessionLocale'EnumStringFi
    | Checkout'sessionLocale'EnumStringFr
    | Checkout'sessionLocale'EnumStringIt
    | Checkout'sessionLocale'EnumStringJa
    | Checkout'sessionLocale'EnumStringMs
    | Checkout'sessionLocale'EnumStringNb
    | Checkout'sessionLocale'EnumStringNl
    | Checkout'sessionLocale'EnumStringPl
    | Checkout'sessionLocale'EnumStringPt
    | Checkout'sessionLocale'EnumStringSv
    | Checkout'sessionLocale'EnumStringZh
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Checkout'sessionLocale'
    where toJSON (Checkout'sessionLocale'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Checkout'sessionLocale'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Checkout'sessionLocale'EnumStringAuto) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto"
          toJSON (Checkout'sessionLocale'EnumStringDa) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "da"
          toJSON (Checkout'sessionLocale'EnumStringDe) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "de"
          toJSON (Checkout'sessionLocale'EnumStringEn) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "en"
          toJSON (Checkout'sessionLocale'EnumStringEs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "es"
          toJSON (Checkout'sessionLocale'EnumStringFi) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fi"
          toJSON (Checkout'sessionLocale'EnumStringFr) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fr"
          toJSON (Checkout'sessionLocale'EnumStringIt) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "it"
          toJSON (Checkout'sessionLocale'EnumStringJa) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ja"
          toJSON (Checkout'sessionLocale'EnumStringMs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ms"
          toJSON (Checkout'sessionLocale'EnumStringNb) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nb"
          toJSON (Checkout'sessionLocale'EnumStringNl) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nl"
          toJSON (Checkout'sessionLocale'EnumStringPl) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pl"
          toJSON (Checkout'sessionLocale'EnumStringPt) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pt"
          toJSON (Checkout'sessionLocale'EnumStringSv) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sv"
          toJSON (Checkout'sessionLocale'EnumStringZh) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "zh"
instance Data.Aeson.FromJSON Checkout'sessionLocale'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto")
                                          then Checkout'sessionLocale'EnumStringAuto
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "da")
                                                then Checkout'sessionLocale'EnumStringDa
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "de")
                                                      then Checkout'sessionLocale'EnumStringDe
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "en")
                                                            then Checkout'sessionLocale'EnumStringEn
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "es")
                                                                  then Checkout'sessionLocale'EnumStringEs
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fi")
                                                                        then Checkout'sessionLocale'EnumStringFi
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fr")
                                                                              then Checkout'sessionLocale'EnumStringFr
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "it")
                                                                                    then Checkout'sessionLocale'EnumStringIt
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ja")
                                                                                          then Checkout'sessionLocale'EnumStringJa
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ms")
                                                                                                then Checkout'sessionLocale'EnumStringMs
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nb")
                                                                                                      then Checkout'sessionLocale'EnumStringNb
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nl")
                                                                                                            then Checkout'sessionLocale'EnumStringNl
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pl")
                                                                                                                  then Checkout'sessionLocale'EnumStringPl
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pt")
                                                                                                                        then Checkout'sessionLocale'EnumStringPt
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sv")
                                                                                                                              then Checkout'sessionLocale'EnumStringSv
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "zh")
                                                                                                                                    then Checkout'sessionLocale'EnumStringZh
                                                                                                                                    else Checkout'sessionLocale'EnumOther val)
-- | Defines the data type for the schema checkout.sessionMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data Checkout'sessionMetadata' = Checkout'sessionMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Checkout'sessionMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Checkout'sessionMetadata'" (\obj -> GHC.Base.pure Checkout'sessionMetadata')
-- | Defines the enum schema checkout.sessionMode\'
-- 
-- The mode of the Checkout Session, one of \`payment\`, \`setup\`, or \`subscription\`.
data Checkout'sessionMode'
    = Checkout'sessionMode'EnumOther Data.Aeson.Types.Internal.Value
    | Checkout'sessionMode'EnumTyped GHC.Base.String
    | Checkout'sessionMode'EnumStringPayment
    | Checkout'sessionMode'EnumStringSetup
    | Checkout'sessionMode'EnumStringSubscription
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Checkout'sessionMode'
    where toJSON (Checkout'sessionMode'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Checkout'sessionMode'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Checkout'sessionMode'EnumStringPayment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment"
          toJSON (Checkout'sessionMode'EnumStringSetup) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "setup"
          toJSON (Checkout'sessionMode'EnumStringSubscription) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription"
instance Data.Aeson.FromJSON Checkout'sessionMode'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment")
                                          then Checkout'sessionMode'EnumStringPayment
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "setup")
                                                then Checkout'sessionMode'EnumStringSetup
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription")
                                                      then Checkout'sessionMode'EnumStringSubscription
                                                      else Checkout'sessionMode'EnumOther val)
-- | Defines the enum schema checkout.sessionObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Checkout'sessionObject'
    = Checkout'sessionObject'EnumOther Data.Aeson.Types.Internal.Value
    | Checkout'sessionObject'EnumTyped GHC.Base.String
    | Checkout'sessionObject'EnumStringCheckout'session
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Checkout'sessionObject'
    where toJSON (Checkout'sessionObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Checkout'sessionObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Checkout'sessionObject'EnumStringCheckout'session) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "checkout.session"
instance Data.Aeson.FromJSON Checkout'sessionObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "checkout.session")
                                          then Checkout'sessionObject'EnumStringCheckout'session
                                          else Checkout'sessionObject'EnumOther val)
-- | Define the one-of schema checkout.sessionPayment_intent\'
-- 
-- The ID of the PaymentIntent for Checkout Sessions in \`payment\` mode.
data Checkout'sessionPaymentIntent'Variants
    = Checkout'sessionPaymentIntent'PaymentIntent PaymentIntent
    | Checkout'sessionPaymentIntent'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Checkout'sessionPaymentIntent'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Checkout'sessionPaymentIntent'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema checkout.sessionSetup_intent\'
-- 
-- The ID of the SetupIntent for Checkout Sessions in \`setup\` mode.
data Checkout'sessionSetupIntent'Variants
    = Checkout'sessionSetupIntent'SetupIntent SetupIntent
    | Checkout'sessionSetupIntent'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Checkout'sessionSetupIntent'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Checkout'sessionSetupIntent'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema checkout.sessionSubmit_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.
data Checkout'sessionSubmitType'
    = Checkout'sessionSubmitType'EnumOther Data.Aeson.Types.Internal.Value
    | Checkout'sessionSubmitType'EnumTyped GHC.Base.String
    | Checkout'sessionSubmitType'EnumStringAuto
    | Checkout'sessionSubmitType'EnumStringBook
    | Checkout'sessionSubmitType'EnumStringDonate
    | Checkout'sessionSubmitType'EnumStringPay
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Checkout'sessionSubmitType'
    where toJSON (Checkout'sessionSubmitType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Checkout'sessionSubmitType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Checkout'sessionSubmitType'EnumStringAuto) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto"
          toJSON (Checkout'sessionSubmitType'EnumStringBook) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "book"
          toJSON (Checkout'sessionSubmitType'EnumStringDonate) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "donate"
          toJSON (Checkout'sessionSubmitType'EnumStringPay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pay"
instance Data.Aeson.FromJSON Checkout'sessionSubmitType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto")
                                          then Checkout'sessionSubmitType'EnumStringAuto
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "book")
                                                then Checkout'sessionSubmitType'EnumStringBook
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "donate")
                                                      then Checkout'sessionSubmitType'EnumStringDonate
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pay")
                                                            then Checkout'sessionSubmitType'EnumStringPay
                                                            else Checkout'sessionSubmitType'EnumOther val)
-- | Define the one-of schema checkout.sessionSubscription\'
-- 
-- The ID of the subscription for Checkout Sessions in \`subscription\` mode.
data Checkout'sessionSubscription'Variants
    = Checkout'sessionSubscription'Subscription Subscription
    | Checkout'sessionSubscription'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Checkout'sessionSubscription'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Checkout'sessionSubscription'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema checkout_session_display_item
-- 
-- 
data CheckoutSessionDisplayItem = CheckoutSessionDisplayItem {
  -- | amount: Amount for the display item.
  checkoutSessionDisplayItemAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | 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).
  , checkoutSessionDisplayItemCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | custom: 
  , checkoutSessionDisplayItemCustom :: (GHC.Maybe.Maybe CheckoutSessionCustomDisplayItemDescription)
  -- | plan: Plans define the base price, currency, and billing cycle for subscriptions.
  -- For example, you might have a \<currency>5\<\/currency>\/month plan
  -- that provides limited access to your products, and a
  -- \<currency>15\<\/currency>\/month plan that allows full access.
  -- 
  -- Related guide: [Managing Products and Plans](https:\/\/stripe.com\/docs\/billing\/subscriptions\/products-and-plans).
  , checkoutSessionDisplayItemPlan :: (GHC.Maybe.Maybe Plan)
  -- | quantity: Quantity of the display item being purchased.
  , checkoutSessionDisplayItemQuantity :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | sku: Stores representations of [stock keeping units](http:\/\/en.wikipedia.org\/wiki\/Stock_keeping_unit).
  -- SKUs describe specific product variations, taking into account any combination of: attributes,
  -- currency, and cost. For example, a product may be a T-shirt, whereas a specific SKU represents
  -- the \`size: large\`, \`color: red\` version of that shirt.
  -- 
  -- Can also be used to manage inventory.
  -- 
  -- Related guide: [Tax, Shipping, and Inventory](https:\/\/stripe.com\/docs\/orders).
  , checkoutSessionDisplayItemSku :: (GHC.Maybe.Maybe Sku)
  -- | type: The type of display item. One of \`custom\`, \`plan\` or \`sku\`
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , checkoutSessionDisplayItemType :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CheckoutSessionDisplayItem
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (checkoutSessionDisplayItemAmount obj) : (Data.Aeson..=) "currency" (checkoutSessionDisplayItemCurrency obj) : (Data.Aeson..=) "custom" (checkoutSessionDisplayItemCustom obj) : (Data.Aeson..=) "plan" (checkoutSessionDisplayItemPlan obj) : (Data.Aeson..=) "quantity" (checkoutSessionDisplayItemQuantity obj) : (Data.Aeson..=) "sku" (checkoutSessionDisplayItemSku obj) : (Data.Aeson..=) "type" (checkoutSessionDisplayItemType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (checkoutSessionDisplayItemAmount obj) GHC.Base.<> ((Data.Aeson..=) "currency" (checkoutSessionDisplayItemCurrency obj) GHC.Base.<> ((Data.Aeson..=) "custom" (checkoutSessionDisplayItemCustom obj) GHC.Base.<> ((Data.Aeson..=) "plan" (checkoutSessionDisplayItemPlan obj) GHC.Base.<> ((Data.Aeson..=) "quantity" (checkoutSessionDisplayItemQuantity obj) GHC.Base.<> ((Data.Aeson..=) "sku" (checkoutSessionDisplayItemSku obj) GHC.Base.<> (Data.Aeson..=) "type" (checkoutSessionDisplayItemType obj)))))))
instance Data.Aeson.Types.FromJSON.FromJSON CheckoutSessionDisplayItem
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CheckoutSessionDisplayItem" (\obj -> ((((((GHC.Base.pure CheckoutSessionDisplayItem GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "custom")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "plan")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "quantity")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sku")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the data type for the schema connect_collection_transfer
-- 
-- 
data ConnectCollectionTransfer = ConnectCollectionTransfer {
  -- | amount: Amount transferred, in %s.
  connectCollectionTransferAmount :: GHC.Integer.Type.Integer
  -- | 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).
  , connectCollectionTransferCurrency :: GHC.Base.String
  -- | destination: ID of the account that funds are being collected for.
  , connectCollectionTransferDestination :: ConnectCollectionTransferDestination'Variants
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , connectCollectionTransferId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , connectCollectionTransferLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , connectCollectionTransferObject :: ConnectCollectionTransferObject'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ConnectCollectionTransfer
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (connectCollectionTransferAmount obj) : (Data.Aeson..=) "currency" (connectCollectionTransferCurrency obj) : (Data.Aeson..=) "destination" (connectCollectionTransferDestination obj) : (Data.Aeson..=) "id" (connectCollectionTransferId obj) : (Data.Aeson..=) "livemode" (connectCollectionTransferLivemode obj) : (Data.Aeson..=) "object" (connectCollectionTransferObject obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (connectCollectionTransferAmount obj) GHC.Base.<> ((Data.Aeson..=) "currency" (connectCollectionTransferCurrency obj) GHC.Base.<> ((Data.Aeson..=) "destination" (connectCollectionTransferDestination obj) GHC.Base.<> ((Data.Aeson..=) "id" (connectCollectionTransferId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (connectCollectionTransferLivemode obj) GHC.Base.<> (Data.Aeson..=) "object" (connectCollectionTransferObject obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON ConnectCollectionTransfer
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ConnectCollectionTransfer" (\obj -> (((((GHC.Base.pure ConnectCollectionTransfer GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "destination")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object"))
-- | Define the one-of schema connect_collection_transferDestination\'
-- 
-- ID of the account that funds are being collected for.
data ConnectCollectionTransferDestination'Variants
    = ConnectCollectionTransferDestination'Account Account
    | ConnectCollectionTransferDestination'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ConnectCollectionTransferDestination'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ConnectCollectionTransferDestination'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema connect_collection_transferObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data ConnectCollectionTransferObject'
    = ConnectCollectionTransferObject'EnumOther Data.Aeson.Types.Internal.Value
    | ConnectCollectionTransferObject'EnumTyped GHC.Base.String
    | ConnectCollectionTransferObject'EnumStringConnectCollectionTransfer
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ConnectCollectionTransferObject'
    where toJSON (ConnectCollectionTransferObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ConnectCollectionTransferObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ConnectCollectionTransferObject'EnumStringConnectCollectionTransfer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "connect_collection_transfer"
instance Data.Aeson.FromJSON ConnectCollectionTransferObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "connect_collection_transfer")
                                          then ConnectCollectionTransferObject'EnumStringConnectCollectionTransfer
                                          else ConnectCollectionTransferObject'EnumOther val)
-- | Defines the data type for the schema credit_note
-- 
-- Issue a credit note to adjust an invoice\'s amount after the invoice is finalized.
-- 
-- Related guide: [Credit Notes](https:\/\/stripe.com\/docs\/billing\/invoices\/credit-notes).
data CreditNote = CreditNote {
  -- | amount: The integer amount in **%s** representing the total amount of the credit note, including tax.
  creditNoteAmount :: GHC.Integer.Type.Integer
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , creditNoteCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , creditNoteCurrency :: GHC.Base.String
  -- | customer: ID of the customer.
  , creditNoteCustomer :: CreditNoteCustomer'Variants
  -- | customer_balance_transaction: Customer balance transaction related to this credit note.
  , creditNoteCustomerBalanceTransaction :: (GHC.Maybe.Maybe CreditNoteCustomerBalanceTransaction'Variants)
  -- | discount_amount: The integer amount in **%s** representing the amount of the discount that was credited.
  , creditNoteDiscountAmount :: GHC.Integer.Type.Integer
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , creditNoteId :: GHC.Base.String
  -- | invoice: ID of the invoice.
  , creditNoteInvoice :: CreditNoteInvoice'Variants
  -- | lines: Line items that make up the credit note
  , creditNoteLines :: CreditNoteLines'
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , creditNoteLivemode :: GHC.Types.Bool
  -- | memo: Customer-facing text that appears on the credit note PDF.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , creditNoteMemo :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , creditNoteMetadata :: CreditNoteMetadata'
  -- | number: A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , creditNoteNumber :: GHC.Base.String
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , creditNoteObject :: CreditNoteObject'
  -- | out_of_band_amount: Amount that was credited outside of Stripe.
  , creditNoteOutOfBandAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | pdf: The link to download the PDF of the credit note.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , creditNotePdf :: GHC.Base.String
  -- | reason: Reason for issuing this credit note, one of \`duplicate\`, \`fraudulent\`, \`order_change\`, or \`product_unsatisfactory\`
  , creditNoteReason :: (GHC.Maybe.Maybe CreditNoteReason')
  -- | refund: Refund related to this credit note.
  , creditNoteRefund :: (GHC.Maybe.Maybe CreditNoteRefund'Variants)
  -- | status: Status of this credit note, one of \`issued\` or \`void\`. Learn more about [voiding credit notes](https:\/\/stripe.com\/docs\/billing\/invoices\/credit-notes\#voiding).
  , creditNoteStatus :: CreditNoteStatus'
  -- | subtotal: The integer amount in **%s** representing the amount of the credit note, excluding tax and discount.
  , creditNoteSubtotal :: GHC.Integer.Type.Integer
  -- | tax_amounts: The aggregate amounts calculated per tax rate for all line items.
  , creditNoteTaxAmounts :: ([] CreditNoteTaxAmount)
  -- | total: The integer amount in **%s** representing the total amount of the credit note, including tax and discount.
  , creditNoteTotal :: GHC.Integer.Type.Integer
  -- | type: Type of this credit note, one of \`pre_payment\` or \`post_payment\`. A \`pre_payment\` credit note means it was issued when the invoice was open. A \`post_payment\` credit note means it was issued when the invoice was paid.
  , creditNoteType :: CreditNoteType'
  -- | voided_at: The time that the credit note was voided.
  , creditNoteVoidedAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CreditNote
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (creditNoteAmount obj) : (Data.Aeson..=) "created" (creditNoteCreated obj) : (Data.Aeson..=) "currency" (creditNoteCurrency obj) : (Data.Aeson..=) "customer" (creditNoteCustomer obj) : (Data.Aeson..=) "customer_balance_transaction" (creditNoteCustomerBalanceTransaction obj) : (Data.Aeson..=) "discount_amount" (creditNoteDiscountAmount obj) : (Data.Aeson..=) "id" (creditNoteId obj) : (Data.Aeson..=) "invoice" (creditNoteInvoice obj) : (Data.Aeson..=) "lines" (creditNoteLines obj) : (Data.Aeson..=) "livemode" (creditNoteLivemode obj) : (Data.Aeson..=) "memo" (creditNoteMemo obj) : (Data.Aeson..=) "metadata" (creditNoteMetadata obj) : (Data.Aeson..=) "number" (creditNoteNumber obj) : (Data.Aeson..=) "object" (creditNoteObject obj) : (Data.Aeson..=) "out_of_band_amount" (creditNoteOutOfBandAmount obj) : (Data.Aeson..=) "pdf" (creditNotePdf obj) : (Data.Aeson..=) "reason" (creditNoteReason obj) : (Data.Aeson..=) "refund" (creditNoteRefund obj) : (Data.Aeson..=) "status" (creditNoteStatus obj) : (Data.Aeson..=) "subtotal" (creditNoteSubtotal obj) : (Data.Aeson..=) "tax_amounts" (creditNoteTaxAmounts obj) : (Data.Aeson..=) "total" (creditNoteTotal obj) : (Data.Aeson..=) "type" (creditNoteType obj) : (Data.Aeson..=) "voided_at" (creditNoteVoidedAt obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (creditNoteAmount obj) GHC.Base.<> ((Data.Aeson..=) "created" (creditNoteCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (creditNoteCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (creditNoteCustomer obj) GHC.Base.<> ((Data.Aeson..=) "customer_balance_transaction" (creditNoteCustomerBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "discount_amount" (creditNoteDiscountAmount obj) GHC.Base.<> ((Data.Aeson..=) "id" (creditNoteId obj) GHC.Base.<> ((Data.Aeson..=) "invoice" (creditNoteInvoice obj) GHC.Base.<> ((Data.Aeson..=) "lines" (creditNoteLines obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (creditNoteLivemode obj) GHC.Base.<> ((Data.Aeson..=) "memo" (creditNoteMemo obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (creditNoteMetadata obj) GHC.Base.<> ((Data.Aeson..=) "number" (creditNoteNumber obj) GHC.Base.<> ((Data.Aeson..=) "object" (creditNoteObject obj) GHC.Base.<> ((Data.Aeson..=) "out_of_band_amount" (creditNoteOutOfBandAmount obj) GHC.Base.<> ((Data.Aeson..=) "pdf" (creditNotePdf obj) GHC.Base.<> ((Data.Aeson..=) "reason" (creditNoteReason obj) GHC.Base.<> ((Data.Aeson..=) "refund" (creditNoteRefund obj) GHC.Base.<> ((Data.Aeson..=) "status" (creditNoteStatus obj) GHC.Base.<> ((Data.Aeson..=) "subtotal" (creditNoteSubtotal obj) GHC.Base.<> ((Data.Aeson..=) "tax_amounts" (creditNoteTaxAmounts obj) GHC.Base.<> ((Data.Aeson..=) "total" (creditNoteTotal obj) GHC.Base.<> ((Data.Aeson..=) "type" (creditNoteType obj) GHC.Base.<> (Data.Aeson..=) "voided_at" (creditNoteVoidedAt obj))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON CreditNote
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CreditNote" (\obj -> (((((((((((((((((((((((GHC.Base.pure CreditNote GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "discount_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "invoice")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "lines")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "memo")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "out_of_band_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "pdf")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "refund")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "subtotal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "tax_amounts")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "total")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "voided_at"))
-- | Define the one-of schema credit_noteCustomer\'
-- 
-- ID of the customer.
data CreditNoteCustomer'Variants
    = CreditNoteCustomer'Customer Customer
    | CreditNoteCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CreditNoteCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CreditNoteCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema credit_noteCustomer_balance_transaction\'
-- 
-- Customer balance transaction related to this credit note.
data CreditNoteCustomerBalanceTransaction'Variants
    = CreditNoteCustomerBalanceTransaction'CustomerBalanceTransaction CustomerBalanceTransaction
    | CreditNoteCustomerBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CreditNoteCustomerBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CreditNoteCustomerBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema credit_noteInvoice\'
-- 
-- ID of the invoice.
data CreditNoteInvoice'Variants
    = CreditNoteInvoice'Invoice Invoice
    | CreditNoteInvoice'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CreditNoteInvoice'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CreditNoteInvoice'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema credit_noteLines\'
-- 
-- Line items that make up the credit note
data CreditNoteLines' = CreditNoteLines' {
  -- | data: Details about each object.
  creditNoteLines'Data :: ([] CreditNoteLineItem)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , creditNoteLines'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , creditNoteLines'Object :: CreditNoteLines'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , creditNoteLines'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CreditNoteLines'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (creditNoteLines'Data obj) : (Data.Aeson..=) "has_more" (creditNoteLines'HasMore obj) : (Data.Aeson..=) "object" (creditNoteLines'Object obj) : (Data.Aeson..=) "url" (creditNoteLines'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (creditNoteLines'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (creditNoteLines'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (creditNoteLines'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (creditNoteLines'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON CreditNoteLines'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CreditNoteLines'" (\obj -> (((GHC.Base.pure CreditNoteLines' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema credit_noteLines\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data CreditNoteLines'Object'
    = CreditNoteLines'Object'EnumOther Data.Aeson.Types.Internal.Value
    | CreditNoteLines'Object'EnumTyped GHC.Base.String
    | CreditNoteLines'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CreditNoteLines'Object'
    where toJSON (CreditNoteLines'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CreditNoteLines'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CreditNoteLines'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON CreditNoteLines'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then CreditNoteLines'Object'EnumStringList
                                          else CreditNoteLines'Object'EnumOther val)
-- | Defines the data type for the schema credit_noteMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data CreditNoteMetadata' = CreditNoteMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CreditNoteMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON CreditNoteMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CreditNoteMetadata'" (\obj -> GHC.Base.pure CreditNoteMetadata')
-- | Defines the enum schema credit_noteObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data CreditNoteObject'
    = CreditNoteObject'EnumOther Data.Aeson.Types.Internal.Value
    | CreditNoteObject'EnumTyped GHC.Base.String
    | CreditNoteObject'EnumStringCreditNote
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CreditNoteObject'
    where toJSON (CreditNoteObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CreditNoteObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CreditNoteObject'EnumStringCreditNote) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_note"
instance Data.Aeson.FromJSON CreditNoteObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_note")
                                          then CreditNoteObject'EnumStringCreditNote
                                          else CreditNoteObject'EnumOther val)
-- | Defines the enum schema credit_noteReason\'
-- 
-- Reason for issuing this credit note, one of \`duplicate\`, \`fraudulent\`, \`order_change\`, or \`product_unsatisfactory\`
data CreditNoteReason'
    = CreditNoteReason'EnumOther Data.Aeson.Types.Internal.Value
    | CreditNoteReason'EnumTyped GHC.Base.String
    | CreditNoteReason'EnumStringDuplicate
    | CreditNoteReason'EnumStringFraudulent
    | CreditNoteReason'EnumStringOrderChange
    | CreditNoteReason'EnumStringProductUnsatisfactory
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CreditNoteReason'
    where toJSON (CreditNoteReason'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CreditNoteReason'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CreditNoteReason'EnumStringDuplicate) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duplicate"
          toJSON (CreditNoteReason'EnumStringFraudulent) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fraudulent"
          toJSON (CreditNoteReason'EnumStringOrderChange) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "order_change"
          toJSON (CreditNoteReason'EnumStringProductUnsatisfactory) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "product_unsatisfactory"
instance Data.Aeson.FromJSON CreditNoteReason'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duplicate")
                                          then CreditNoteReason'EnumStringDuplicate
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fraudulent")
                                                then CreditNoteReason'EnumStringFraudulent
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "order_change")
                                                      then CreditNoteReason'EnumStringOrderChange
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "product_unsatisfactory")
                                                            then CreditNoteReason'EnumStringProductUnsatisfactory
                                                            else CreditNoteReason'EnumOther val)
-- | Define the one-of schema credit_noteRefund\'
-- 
-- Refund related to this credit note.
data CreditNoteRefund'Variants
    = CreditNoteRefund'Refund Refund
    | CreditNoteRefund'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CreditNoteRefund'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CreditNoteRefund'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema credit_noteStatus\'
-- 
-- Status of this credit note, one of \`issued\` or \`void\`. Learn more about [voiding credit notes](https:\/\/stripe.com\/docs\/billing\/invoices\/credit-notes\#voiding).
data CreditNoteStatus'
    = CreditNoteStatus'EnumOther Data.Aeson.Types.Internal.Value
    | CreditNoteStatus'EnumTyped GHC.Base.String
    | CreditNoteStatus'EnumStringIssued
    | CreditNoteStatus'EnumStringVoid
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CreditNoteStatus'
    where toJSON (CreditNoteStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CreditNoteStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CreditNoteStatus'EnumStringIssued) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issued"
          toJSON (CreditNoteStatus'EnumStringVoid) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "void"
instance Data.Aeson.FromJSON CreditNoteStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issued")
                                          then CreditNoteStatus'EnumStringIssued
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "void")
                                                then CreditNoteStatus'EnumStringVoid
                                                else CreditNoteStatus'EnumOther val)
-- | Defines the enum schema credit_noteType\'
-- 
-- Type of this credit note, one of \`pre_payment\` or \`post_payment\`. A \`pre_payment\` credit note means it was issued when the invoice was open. A \`post_payment\` credit note means it was issued when the invoice was paid.
data CreditNoteType'
    = CreditNoteType'EnumOther Data.Aeson.Types.Internal.Value
    | CreditNoteType'EnumTyped GHC.Base.String
    | CreditNoteType'EnumStringPostPayment
    | CreditNoteType'EnumStringPrePayment
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CreditNoteType'
    where toJSON (CreditNoteType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CreditNoteType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CreditNoteType'EnumStringPostPayment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "post_payment"
          toJSON (CreditNoteType'EnumStringPrePayment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pre_payment"
instance Data.Aeson.FromJSON CreditNoteType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "post_payment")
                                          then CreditNoteType'EnumStringPostPayment
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pre_payment")
                                                then CreditNoteType'EnumStringPrePayment
                                                else CreditNoteType'EnumOther val)
-- | Defines the data type for the schema customer
-- 
-- \`Customer\` objects allow you to perform recurring charges, and to track
-- multiple charges, that are associated with the same customer. The API allows
-- you to create, delete, and update your customers. You can retrieve individual
-- customers as well as a list of all your customers.
-- 
-- Related guide: [Saving Cards with Customers](https:\/\/stripe.com\/docs\/saving-cards).
data Customer = Customer {
  -- | address: The customer\'s address.
  customerAddress :: (GHC.Maybe.Maybe CustomerAddress')
  -- | balance: Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.
  , customerBalance :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , customerCreated :: GHC.Integer.Type.Integer
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/currencies) the customer can be charged in for recurring billing purposes.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_source: ID of the default payment source for the customer.
  -- 
  -- If you are using payment methods created via the PaymentMethods API, see the [invoice_settings.default_payment_method](https:\/\/stripe.com\/docs\/api\/customers\/object\#customer_object-invoice_settings-default_payment_method) field instead.
  , customerDefaultSource :: (GHC.Maybe.Maybe CustomerDefaultSource'Variants)
  -- | delinquent: When the customer\'s latest invoice is billed by charging automatically, delinquent is true if the invoice\'s latest charge is failed. When the customer\'s latest invoice is billed by sending an invoice, delinquent is true if the invoice is not paid by its due date.
  , customerDelinquent :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | discount: Describes the current discount active on the customer, if there is one.
  , customerDiscount :: (GHC.Maybe.Maybe CustomerDiscount')
  -- | email: The customer\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerId :: GHC.Base.String
  -- | invoice_prefix: The prefix for the customer used to generate unique invoice numbers.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerInvoicePrefix :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | invoice_settings: 
  , customerInvoiceSettings :: (GHC.Maybe.Maybe InvoiceSettingCustomerSetting)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , customerLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , customerMetadata :: (GHC.Maybe.Maybe CustomerMetadata')
  -- | name: The customer\'s full name or business name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | next_invoice_sequence: The suffix of the customer\'s next invoice number, e.g., 0001.
  , customerNextInvoiceSequence :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , customerObject :: CustomerObject'
  -- | phone: The customer\'s phone number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | preferred_locales: The customer\'s preferred locales (languages), ordered by preference.
  , customerPreferredLocales :: (GHC.Maybe.Maybe ([] GHC.Base.String))
  -- | shipping: Mailing and shipping address for the customer. Appears on invoices emailed to this customer.
  , customerShipping :: (GHC.Maybe.Maybe CustomerShipping')
  -- | sources: The customer\'s payment sources, if any.
  , customerSources :: CustomerSources'
  -- | subscriptions: The customer\'s current subscriptions, if any.
  , customerSubscriptions :: (GHC.Maybe.Maybe CustomerSubscriptions')
  -- | tax_exempt: Describes the customer\'s tax exemption status. One of \`none\`, \`exempt\`, or \`reverse\`. When set to \`reverse\`, invoice and receipt PDFs include the text **\"Reverse charge\"**.
  , customerTaxExempt :: (GHC.Maybe.Maybe CustomerTaxExempt')
  -- | tax_ids: The customer\'s tax IDs.
  , customerTaxIds :: (GHC.Maybe.Maybe CustomerTaxIds')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Customer
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (customerAddress obj) : (Data.Aeson..=) "balance" (customerBalance obj) : (Data.Aeson..=) "created" (customerCreated obj) : (Data.Aeson..=) "currency" (customerCurrency obj) : (Data.Aeson..=) "default_source" (customerDefaultSource obj) : (Data.Aeson..=) "delinquent" (customerDelinquent obj) : (Data.Aeson..=) "description" (customerDescription obj) : (Data.Aeson..=) "discount" (customerDiscount obj) : (Data.Aeson..=) "email" (customerEmail obj) : (Data.Aeson..=) "id" (customerId obj) : (Data.Aeson..=) "invoice_prefix" (customerInvoicePrefix obj) : (Data.Aeson..=) "invoice_settings" (customerInvoiceSettings obj) : (Data.Aeson..=) "livemode" (customerLivemode obj) : (Data.Aeson..=) "metadata" (customerMetadata obj) : (Data.Aeson..=) "name" (customerName obj) : (Data.Aeson..=) "next_invoice_sequence" (customerNextInvoiceSequence obj) : (Data.Aeson..=) "object" (customerObject obj) : (Data.Aeson..=) "phone" (customerPhone obj) : (Data.Aeson..=) "preferred_locales" (customerPreferredLocales obj) : (Data.Aeson..=) "shipping" (customerShipping obj) : (Data.Aeson..=) "sources" (customerSources obj) : (Data.Aeson..=) "subscriptions" (customerSubscriptions obj) : (Data.Aeson..=) "tax_exempt" (customerTaxExempt obj) : (Data.Aeson..=) "tax_ids" (customerTaxIds obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (customerAddress obj) GHC.Base.<> ((Data.Aeson..=) "balance" (customerBalance obj) GHC.Base.<> ((Data.Aeson..=) "created" (customerCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (customerCurrency obj) GHC.Base.<> ((Data.Aeson..=) "default_source" (customerDefaultSource obj) GHC.Base.<> ((Data.Aeson..=) "delinquent" (customerDelinquent obj) GHC.Base.<> ((Data.Aeson..=) "description" (customerDescription obj) GHC.Base.<> ((Data.Aeson..=) "discount" (customerDiscount obj) GHC.Base.<> ((Data.Aeson..=) "email" (customerEmail obj) GHC.Base.<> ((Data.Aeson..=) "id" (customerId obj) GHC.Base.<> ((Data.Aeson..=) "invoice_prefix" (customerInvoicePrefix obj) GHC.Base.<> ((Data.Aeson..=) "invoice_settings" (customerInvoiceSettings obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (customerLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (customerMetadata obj) GHC.Base.<> ((Data.Aeson..=) "name" (customerName obj) GHC.Base.<> ((Data.Aeson..=) "next_invoice_sequence" (customerNextInvoiceSequence obj) GHC.Base.<> ((Data.Aeson..=) "object" (customerObject obj) GHC.Base.<> ((Data.Aeson..=) "phone" (customerPhone obj) GHC.Base.<> ((Data.Aeson..=) "preferred_locales" (customerPreferredLocales obj) GHC.Base.<> ((Data.Aeson..=) "shipping" (customerShipping obj) GHC.Base.<> ((Data.Aeson..=) "sources" (customerSources obj) GHC.Base.<> ((Data.Aeson..=) "subscriptions" (customerSubscriptions obj) GHC.Base.<> ((Data.Aeson..=) "tax_exempt" (customerTaxExempt obj) GHC.Base.<> (Data.Aeson..=) "tax_ids" (customerTaxIds obj))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Customer
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Customer" (\obj -> (((((((((((((((((((((((GHC.Base.pure Customer GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_source")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "delinquent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "discount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice_prefix")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice_settings")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "next_invoice_sequence")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "preferred_locales")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "sources")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscriptions")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_exempt")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_ids"))
-- | Defines the data type for the schema customerAddress\'
-- 
-- The customer\\\'s address.
data CustomerAddress' = CustomerAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  customerAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (customerAddress'City obj) : (Data.Aeson..=) "country" (customerAddress'Country obj) : (Data.Aeson..=) "line1" (customerAddress'Line1 obj) : (Data.Aeson..=) "line2" (customerAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (customerAddress'PostalCode obj) : (Data.Aeson..=) "state" (customerAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (customerAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (customerAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (customerAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (customerAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (customerAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (customerAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerAddress'" (\obj -> (((((GHC.Base.pure CustomerAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Define the one-of schema customerDefault_source\'
-- 
-- ID of the default payment source for the customer.
-- 
-- If you are using payment methods created via the PaymentMethods API, see the [invoice_settings.default_payment_method](https:\/\/stripe.com\/docs\/api\/customers\/object\#customer_object-invoice_settings-default_payment_method) field instead.
data CustomerDefaultSource'Variants
    = CustomerDefaultSource'AlipayAccount AlipayAccount
    | CustomerDefaultSource'BankAccount BankAccount
    | CustomerDefaultSource'BitcoinReceiver BitcoinReceiver
    | CustomerDefaultSource'Card Card
    | CustomerDefaultSource'Source Source
    | CustomerDefaultSource'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CustomerDefaultSource'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CustomerDefaultSource'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema customerDiscount\'
-- 
-- Describes the current discount active on the customer, if there is one.
data CustomerDiscount' = CustomerDiscount' {
  -- | coupon: A coupon contains information about a percent-off or amount-off discount you
  -- might want to apply to a customer. Coupons may be applied to [invoices](https:\/\/stripe.com\/docs\/api\#invoices) or
  -- [orders](https:\/\/stripe.com\/docs\/api\#create_order-coupon). Coupons do not work with conventional one-off [charges](https:\/\/stripe.com\/docs\/api\#create_charge).
  customerDiscount'Coupon :: (GHC.Maybe.Maybe Coupon)
  -- | customer: The ID of the customer associated with this discount.
  , customerDiscount'Customer :: (GHC.Maybe.Maybe CustomerDiscount'Customer'Variants)
  -- | end: If the coupon has a duration of \`repeating\`, the date that this discount will end. If the coupon has a duration of \`once\` or \`forever\`, this attribute will be null.
  , customerDiscount'End :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , customerDiscount'Object :: (GHC.Maybe.Maybe CustomerDiscount'Object')
  -- | start: Date that the coupon was applied.
  , customerDiscount'Start :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | subscription: The subscription that this coupon is applied to, if it is applied to a particular subscription.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerDiscount'Subscription :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerDiscount'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "coupon" (customerDiscount'Coupon obj) : (Data.Aeson..=) "customer" (customerDiscount'Customer obj) : (Data.Aeson..=) "end" (customerDiscount'End obj) : (Data.Aeson..=) "object" (customerDiscount'Object obj) : (Data.Aeson..=) "start" (customerDiscount'Start obj) : (Data.Aeson..=) "subscription" (customerDiscount'Subscription obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "coupon" (customerDiscount'Coupon obj) GHC.Base.<> ((Data.Aeson..=) "customer" (customerDiscount'Customer obj) GHC.Base.<> ((Data.Aeson..=) "end" (customerDiscount'End obj) GHC.Base.<> ((Data.Aeson..=) "object" (customerDiscount'Object obj) GHC.Base.<> ((Data.Aeson..=) "start" (customerDiscount'Start obj) GHC.Base.<> (Data.Aeson..=) "subscription" (customerDiscount'Subscription obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerDiscount'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerDiscount'" (\obj -> (((((GHC.Base.pure CustomerDiscount' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "coupon")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "end")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "start")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription"))
-- | Define the one-of schema customerDiscount\'Customer\'
-- 
-- The ID of the customer associated with this discount.
data CustomerDiscount'Customer'Variants
    = CustomerDiscount'Customer'Customer Customer
    | CustomerDiscount'Customer'DeletedCustomer DeletedCustomer
    | CustomerDiscount'Customer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CustomerDiscount'Customer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CustomerDiscount'Customer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema customerDiscount\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data CustomerDiscount'Object'
    = CustomerDiscount'Object'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerDiscount'Object'EnumTyped GHC.Base.String
    | CustomerDiscount'Object'EnumStringDiscount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerDiscount'Object'
    where toJSON (CustomerDiscount'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerDiscount'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerDiscount'Object'EnumStringDiscount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount"
instance Data.Aeson.FromJSON CustomerDiscount'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount")
                                          then CustomerDiscount'Object'EnumStringDiscount
                                          else CustomerDiscount'Object'EnumOther val)
-- | Defines the data type for the schema customerMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data CustomerMetadata' = CustomerMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerMetadata'" (\obj -> GHC.Base.pure CustomerMetadata')
-- | Defines the enum schema customerObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data CustomerObject'
    = CustomerObject'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerObject'EnumTyped GHC.Base.String
    | CustomerObject'EnumStringCustomer
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerObject'
    where toJSON (CustomerObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerObject'EnumStringCustomer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "customer"
instance Data.Aeson.FromJSON CustomerObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "customer")
                                          then CustomerObject'EnumStringCustomer
                                          else CustomerObject'EnumOther val)
-- | Defines the data type for the schema customerShipping\'
-- 
-- Mailing and shipping address for the customer. Appears on invoices emailed to this customer.
data CustomerShipping' = CustomerShipping' {
  -- | address: 
  customerShipping'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
  , customerShipping'Carrier :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Recipient name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerShipping'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Recipient phone (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerShipping'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | 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
  , customerShipping'TrackingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerShipping'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (customerShipping'Address obj) : (Data.Aeson..=) "carrier" (customerShipping'Carrier obj) : (Data.Aeson..=) "name" (customerShipping'Name obj) : (Data.Aeson..=) "phone" (customerShipping'Phone obj) : (Data.Aeson..=) "tracking_number" (customerShipping'TrackingNumber obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (customerShipping'Address obj) GHC.Base.<> ((Data.Aeson..=) "carrier" (customerShipping'Carrier obj) GHC.Base.<> ((Data.Aeson..=) "name" (customerShipping'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (customerShipping'Phone obj) GHC.Base.<> (Data.Aeson..=) "tracking_number" (customerShipping'TrackingNumber obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerShipping'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerShipping'" (\obj -> ((((GHC.Base.pure CustomerShipping' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "carrier")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tracking_number"))
-- | Defines the data type for the schema customerSources\'
-- 
-- The customer\'s payment sources, if any.
data CustomerSources' = CustomerSources' {
  -- | data: Details about each object.
  customerSources'Data :: ([] CustomerSources'Data')
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , customerSources'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , customerSources'Object :: CustomerSources'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (customerSources'Data obj) : (Data.Aeson..=) "has_more" (customerSources'HasMore obj) : (Data.Aeson..=) "object" (customerSources'Object obj) : (Data.Aeson..=) "url" (customerSources'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (customerSources'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (customerSources'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (customerSources'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (customerSources'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerSources'" (\obj -> (((GHC.Base.pure CustomerSources' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the data type for the schema customerSources\'Data\'
-- 
-- 
data CustomerSources'Data' = CustomerSources'Data' {
  -- | account: The ID of the account that the bank account is associated with.
  customerSources'Data'Account :: (GHC.Maybe.Maybe CustomerSources'Data'Account'Variants)
  -- | account_holder_name: The name of the person or business that owns the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'AccountHolderName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'AccountHolderType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ach_credit_transfer
  , customerSources'Data'AchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer)
  -- | ach_debit
  , customerSources'Data'AchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit)
  -- | active: True when this bitcoin receiver has received a non-zero amount of bitcoin.
  , customerSources'Data'Active :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | address_city: City\/District\/Suburb\/Town\/Village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'AddressCity :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_country: Billing address country, if provided when creating card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'AddressCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'AddressLine1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'AddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'AddressLine2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_state: State\/County\/Province\/Region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'AddressState :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'AddressZip :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'AddressZipCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | alipay
  , customerSources'Data'Alipay :: (GHC.Maybe.Maybe SourceTypeAlipay)
  -- | amount: The amount of \`currency\` that you are collecting as payment.
  , customerSources'Data'Amount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | amount_received: The amount of \`currency\` to which \`bitcoin_amount_received\` has been converted.
  , customerSources'Data'AmountReceived :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | available_payout_methods: A set of available payout methods for this card. Will be either \`[\"standard\"]\` or \`[\"standard\", \"instant\"]\`. Only values from this set should be passed as the \`method\` when creating a transfer.
  , customerSources'Data'AvailablePayoutMethods :: (GHC.Maybe.Maybe ([] CustomerSources'Data'AvailablePayoutMethods'))
  -- | bancontact
  , customerSources'Data'Bancontact :: (GHC.Maybe.Maybe SourceTypeBancontact)
  -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'BankName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | bitcoin_amount: The amount of bitcoin that the customer should send to fill the receiver. The \`bitcoin_amount\` is denominated in Satoshi: there are 10^8 Satoshi in one bitcoin.
  , customerSources'Data'BitcoinAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | bitcoin_amount_received: The amount of bitcoin that has been sent by the customer to this receiver.
  , customerSources'Data'BitcoinAmountReceived :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | bitcoin_uri: This URI can be displayed to the customer as a clickable link (to activate their bitcoin client) or as a QR code (for mobile wallets).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'BitcoinUri :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Brand :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | card
  , customerSources'Data'Card :: (GHC.Maybe.Maybe SourceTypeCard)
  -- | card_present
  , customerSources'Data'CardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent)
  -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'ClientSecret :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | code_verification: 
  , customerSources'Data'CodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow)
  -- | country: Two-letter ISO code representing the country the bank account is located in.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , customerSources'Data'Created :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  , customerSources'Data'Currency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The ID of the customer associated with this Alipay Account.
  , customerSources'Data'Customer :: (GHC.Maybe.Maybe CustomerSources'Data'Customer'Variants)
  -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'CvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_for_currency: Whether this bank account is the default external account for its currency.
  , customerSources'Data'DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Description :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'DynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | email: The customer\'s email address, set by the API call that creates the receiver.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Email :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | eps
  , customerSources'Data'Eps :: (GHC.Maybe.Maybe SourceTypeEps)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , customerSources'Data'ExpMonth :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , customerSources'Data'ExpYear :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | filled: This flag is initially false and updates to true when the customer sends the \`bitcoin_amount\` to this receiver.
  , customerSources'Data'Filled :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | fingerprint: Uniquely identifies the account and will be the same across all Alipay account objects that are linked to the same Alipay account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Fingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | flow: The authentication \`flow\` of the source. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Flow :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Funding :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | giropay
  , customerSources'Data'Giropay :: (GHC.Maybe.Maybe SourceTypeGiropay)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ideal
  , customerSources'Data'Ideal :: (GHC.Maybe.Maybe SourceTypeIdeal)
  -- | inbound_address: A bitcoin address that is specific to this receiver. The customer can send bitcoin to this address to fill the receiver.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'InboundAddress :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | klarna
  , customerSources'Data'Klarna :: (GHC.Maybe.Maybe SourceTypeKlarna)
  -- | last4: The last four digits of the bank account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Last4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , customerSources'Data'Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , customerSources'Data'Metadata :: (GHC.Maybe.Maybe CustomerSources'Data'Metadata')
  -- | multibanco
  , customerSources'Data'Multibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco)
  -- | name: Cardholder name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , customerSources'Data'Object :: (GHC.Maybe.Maybe CustomerSources'Data'Object')
  -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
  , customerSources'Data'Owner :: (GHC.Maybe.Maybe CustomerSources'Data'Owner')
  -- | p24
  , customerSources'Data'P24 :: (GHC.Maybe.Maybe SourceTypeP24)
  -- | payment: The ID of the payment created from the receiver, if any. Hidden when viewing the receiver with a publishable key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Payment :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | payment_amount: If the Alipay account object is not reusable, the exact amount that you can create a charge for.
  , customerSources'Data'PaymentAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | payment_currency: If the Alipay account object is not reusable, the exact currency that you can create a charge for.
  , customerSources'Data'PaymentCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | receiver: 
  , customerSources'Data'Receiver :: (GHC.Maybe.Maybe SourceReceiverFlow)
  -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
  , customerSources'Data'Recipient :: (GHC.Maybe.Maybe CustomerSources'Data'Recipient'Variants)
  -- | redirect: 
  , customerSources'Data'Redirect :: (GHC.Maybe.Maybe SourceRedirectFlow)
  -- | refund_address: The refund address of this bitcoin receiver.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'RefundAddress :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | reusable: True if you can create multiple payments using this account. If the account is reusable, then you can freely choose the amount of each payment.
  , customerSources'Data'Reusable :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | routing_number: The routing transit number for the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'RoutingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | sepa_debit
  , customerSources'Data'SepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit)
  -- | sofort
  , customerSources'Data'Sofort :: (GHC.Maybe.Maybe SourceTypeSofort)
  -- | source_order: 
  , customerSources'Data'SourceOrder :: (GHC.Maybe.Maybe SourceOrder)
  -- | statement_descriptor: Extra information about a source. This will appear on your customer\'s statement every time you charge the source.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'StatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
  -- 
  -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Status :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | three_d_secure
  , customerSources'Data'ThreeDSecure :: (GHC.Maybe.Maybe SourceTypeThreeDSecure)
  -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`amex_express_checkout\`, \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'TokenizationMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | transactions: A list with one entry for each time that the customer sent bitcoin to the receiver. Hidden when viewing the receiver with a publishable key.
  , customerSources'Data'Transactions :: (GHC.Maybe.Maybe CustomerSources'Data'Transactions')
  -- | type: The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
  , customerSources'Data'Type :: (GHC.Maybe.Maybe CustomerSources'Data'Type')
  -- | uncaptured_funds: This receiver contains uncaptured funds that can be used for a payment or refunded.
  , customerSources'Data'UncapturedFunds :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | usage: Either \`reusable\` or \`single_use\`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Usage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | used: Whether this Alipay account object has ever been used for a payment.
  , customerSources'Data'Used :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | used_for_payment: Indicate if this source is used for payment.
  , customerSources'Data'UsedForPayment :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | username: The username for the Alipay account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Username :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | wechat
  , customerSources'Data'Wechat :: (GHC.Maybe.Maybe SourceTypeWechat)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Data'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (customerSources'Data'Account obj) : (Data.Aeson..=) "account_holder_name" (customerSources'Data'AccountHolderName obj) : (Data.Aeson..=) "account_holder_type" (customerSources'Data'AccountHolderType obj) : (Data.Aeson..=) "ach_credit_transfer" (customerSources'Data'AchCreditTransfer obj) : (Data.Aeson..=) "ach_debit" (customerSources'Data'AchDebit obj) : (Data.Aeson..=) "active" (customerSources'Data'Active obj) : (Data.Aeson..=) "address_city" (customerSources'Data'AddressCity obj) : (Data.Aeson..=) "address_country" (customerSources'Data'AddressCountry obj) : (Data.Aeson..=) "address_line1" (customerSources'Data'AddressLine1 obj) : (Data.Aeson..=) "address_line1_check" (customerSources'Data'AddressLine1Check obj) : (Data.Aeson..=) "address_line2" (customerSources'Data'AddressLine2 obj) : (Data.Aeson..=) "address_state" (customerSources'Data'AddressState obj) : (Data.Aeson..=) "address_zip" (customerSources'Data'AddressZip obj) : (Data.Aeson..=) "address_zip_check" (customerSources'Data'AddressZipCheck obj) : (Data.Aeson..=) "alipay" (customerSources'Data'Alipay obj) : (Data.Aeson..=) "amount" (customerSources'Data'Amount obj) : (Data.Aeson..=) "amount_received" (customerSources'Data'AmountReceived obj) : (Data.Aeson..=) "available_payout_methods" (customerSources'Data'AvailablePayoutMethods obj) : (Data.Aeson..=) "bancontact" (customerSources'Data'Bancontact obj) : (Data.Aeson..=) "bank_name" (customerSources'Data'BankName obj) : (Data.Aeson..=) "bitcoin_amount" (customerSources'Data'BitcoinAmount obj) : (Data.Aeson..=) "bitcoin_amount_received" (customerSources'Data'BitcoinAmountReceived obj) : (Data.Aeson..=) "bitcoin_uri" (customerSources'Data'BitcoinUri obj) : (Data.Aeson..=) "brand" (customerSources'Data'Brand obj) : (Data.Aeson..=) "card" (customerSources'Data'Card obj) : (Data.Aeson..=) "card_present" (customerSources'Data'CardPresent obj) : (Data.Aeson..=) "client_secret" (customerSources'Data'ClientSecret obj) : (Data.Aeson..=) "code_verification" (customerSources'Data'CodeVerification obj) : (Data.Aeson..=) "country" (customerSources'Data'Country obj) : (Data.Aeson..=) "created" (customerSources'Data'Created obj) : (Data.Aeson..=) "currency" (customerSources'Data'Currency obj) : (Data.Aeson..=) "customer" (customerSources'Data'Customer obj) : (Data.Aeson..=) "cvc_check" (customerSources'Data'CvcCheck obj) : (Data.Aeson..=) "default_for_currency" (customerSources'Data'DefaultForCurrency obj) : (Data.Aeson..=) "description" (customerSources'Data'Description obj) : (Data.Aeson..=) "dynamic_last4" (customerSources'Data'DynamicLast4 obj) : (Data.Aeson..=) "email" (customerSources'Data'Email obj) : (Data.Aeson..=) "eps" (customerSources'Data'Eps obj) : (Data.Aeson..=) "exp_month" (customerSources'Data'ExpMonth obj) : (Data.Aeson..=) "exp_year" (customerSources'Data'ExpYear obj) : (Data.Aeson..=) "filled" (customerSources'Data'Filled obj) : (Data.Aeson..=) "fingerprint" (customerSources'Data'Fingerprint obj) : (Data.Aeson..=) "flow" (customerSources'Data'Flow obj) : (Data.Aeson..=) "funding" (customerSources'Data'Funding obj) : (Data.Aeson..=) "giropay" (customerSources'Data'Giropay obj) : (Data.Aeson..=) "id" (customerSources'Data'Id obj) : (Data.Aeson..=) "ideal" (customerSources'Data'Ideal obj) : (Data.Aeson..=) "inbound_address" (customerSources'Data'InboundAddress obj) : (Data.Aeson..=) "klarna" (customerSources'Data'Klarna obj) : (Data.Aeson..=) "last4" (customerSources'Data'Last4 obj) : (Data.Aeson..=) "livemode" (customerSources'Data'Livemode obj) : (Data.Aeson..=) "metadata" (customerSources'Data'Metadata obj) : (Data.Aeson..=) "multibanco" (customerSources'Data'Multibanco obj) : (Data.Aeson..=) "name" (customerSources'Data'Name obj) : (Data.Aeson..=) "object" (customerSources'Data'Object obj) : (Data.Aeson..=) "owner" (customerSources'Data'Owner obj) : (Data.Aeson..=) "p24" (customerSources'Data'P24 obj) : (Data.Aeson..=) "payment" (customerSources'Data'Payment obj) : (Data.Aeson..=) "payment_amount" (customerSources'Data'PaymentAmount obj) : (Data.Aeson..=) "payment_currency" (customerSources'Data'PaymentCurrency obj) : (Data.Aeson..=) "receiver" (customerSources'Data'Receiver obj) : (Data.Aeson..=) "recipient" (customerSources'Data'Recipient obj) : (Data.Aeson..=) "redirect" (customerSources'Data'Redirect obj) : (Data.Aeson..=) "refund_address" (customerSources'Data'RefundAddress obj) : (Data.Aeson..=) "reusable" (customerSources'Data'Reusable obj) : (Data.Aeson..=) "routing_number" (customerSources'Data'RoutingNumber obj) : (Data.Aeson..=) "sepa_debit" (customerSources'Data'SepaDebit obj) : (Data.Aeson..=) "sofort" (customerSources'Data'Sofort obj) : (Data.Aeson..=) "source_order" (customerSources'Data'SourceOrder obj) : (Data.Aeson..=) "statement_descriptor" (customerSources'Data'StatementDescriptor obj) : (Data.Aeson..=) "status" (customerSources'Data'Status obj) : (Data.Aeson..=) "three_d_secure" (customerSources'Data'ThreeDSecure obj) : (Data.Aeson..=) "tokenization_method" (customerSources'Data'TokenizationMethod obj) : (Data.Aeson..=) "transactions" (customerSources'Data'Transactions obj) : (Data.Aeson..=) "type" (customerSources'Data'Type obj) : (Data.Aeson..=) "uncaptured_funds" (customerSources'Data'UncapturedFunds obj) : (Data.Aeson..=) "usage" (customerSources'Data'Usage obj) : (Data.Aeson..=) "used" (customerSources'Data'Used obj) : (Data.Aeson..=) "used_for_payment" (customerSources'Data'UsedForPayment obj) : (Data.Aeson..=) "username" (customerSources'Data'Username obj) : (Data.Aeson..=) "wechat" (customerSources'Data'Wechat obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (customerSources'Data'Account obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_name" (customerSources'Data'AccountHolderName obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_type" (customerSources'Data'AccountHolderType obj) GHC.Base.<> ((Data.Aeson..=) "ach_credit_transfer" (customerSources'Data'AchCreditTransfer obj) GHC.Base.<> ((Data.Aeson..=) "ach_debit" (customerSources'Data'AchDebit obj) GHC.Base.<> ((Data.Aeson..=) "active" (customerSources'Data'Active obj) GHC.Base.<> ((Data.Aeson..=) "address_city" (customerSources'Data'AddressCity obj) GHC.Base.<> ((Data.Aeson..=) "address_country" (customerSources'Data'AddressCountry obj) GHC.Base.<> ((Data.Aeson..=) "address_line1" (customerSources'Data'AddressLine1 obj) GHC.Base.<> ((Data.Aeson..=) "address_line1_check" (customerSources'Data'AddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_line2" (customerSources'Data'AddressLine2 obj) GHC.Base.<> ((Data.Aeson..=) "address_state" (customerSources'Data'AddressState obj) GHC.Base.<> ((Data.Aeson..=) "address_zip" (customerSources'Data'AddressZip obj) GHC.Base.<> ((Data.Aeson..=) "address_zip_check" (customerSources'Data'AddressZipCheck obj) GHC.Base.<> ((Data.Aeson..=) "alipay" (customerSources'Data'Alipay obj) GHC.Base.<> ((Data.Aeson..=) "amount" (customerSources'Data'Amount obj) GHC.Base.<> ((Data.Aeson..=) "amount_received" (customerSources'Data'AmountReceived obj) GHC.Base.<> ((Data.Aeson..=) "available_payout_methods" (customerSources'Data'AvailablePayoutMethods obj) GHC.Base.<> ((Data.Aeson..=) "bancontact" (customerSources'Data'Bancontact obj) GHC.Base.<> ((Data.Aeson..=) "bank_name" (customerSources'Data'BankName obj) GHC.Base.<> ((Data.Aeson..=) "bitcoin_amount" (customerSources'Data'BitcoinAmount obj) GHC.Base.<> ((Data.Aeson..=) "bitcoin_amount_received" (customerSources'Data'BitcoinAmountReceived obj) GHC.Base.<> ((Data.Aeson..=) "bitcoin_uri" (customerSources'Data'BitcoinUri obj) GHC.Base.<> ((Data.Aeson..=) "brand" (customerSources'Data'Brand obj) GHC.Base.<> ((Data.Aeson..=) "card" (customerSources'Data'Card obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (customerSources'Data'CardPresent obj) GHC.Base.<> ((Data.Aeson..=) "client_secret" (customerSources'Data'ClientSecret obj) GHC.Base.<> ((Data.Aeson..=) "code_verification" (customerSources'Data'CodeVerification obj) GHC.Base.<> ((Data.Aeson..=) "country" (customerSources'Data'Country obj) GHC.Base.<> ((Data.Aeson..=) "created" (customerSources'Data'Created obj) GHC.Base.<> ((Data.Aeson..=) "currency" (customerSources'Data'Currency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (customerSources'Data'Customer obj) GHC.Base.<> ((Data.Aeson..=) "cvc_check" (customerSources'Data'CvcCheck obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (customerSources'Data'DefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "description" (customerSources'Data'Description obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (customerSources'Data'DynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "email" (customerSources'Data'Email obj) GHC.Base.<> ((Data.Aeson..=) "eps" (customerSources'Data'Eps obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (customerSources'Data'ExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (customerSources'Data'ExpYear obj) GHC.Base.<> ((Data.Aeson..=) "filled" (customerSources'Data'Filled obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (customerSources'Data'Fingerprint obj) GHC.Base.<> ((Data.Aeson..=) "flow" (customerSources'Data'Flow obj) GHC.Base.<> ((Data.Aeson..=) "funding" (customerSources'Data'Funding obj) GHC.Base.<> ((Data.Aeson..=) "giropay" (customerSources'Data'Giropay obj) GHC.Base.<> ((Data.Aeson..=) "id" (customerSources'Data'Id obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (customerSources'Data'Ideal obj) GHC.Base.<> ((Data.Aeson..=) "inbound_address" (customerSources'Data'InboundAddress obj) GHC.Base.<> ((Data.Aeson..=) "klarna" (customerSources'Data'Klarna obj) GHC.Base.<> ((Data.Aeson..=) "last4" (customerSources'Data'Last4 obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (customerSources'Data'Livemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (customerSources'Data'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "multibanco" (customerSources'Data'Multibanco obj) GHC.Base.<> ((Data.Aeson..=) "name" (customerSources'Data'Name obj) GHC.Base.<> ((Data.Aeson..=) "object" (customerSources'Data'Object obj) GHC.Base.<> ((Data.Aeson..=) "owner" (customerSources'Data'Owner obj) GHC.Base.<> ((Data.Aeson..=) "p24" (customerSources'Data'P24 obj) GHC.Base.<> ((Data.Aeson..=) "payment" (customerSources'Data'Payment obj) GHC.Base.<> ((Data.Aeson..=) "payment_amount" (customerSources'Data'PaymentAmount obj) GHC.Base.<> ((Data.Aeson..=) "payment_currency" (customerSources'Data'PaymentCurrency obj) GHC.Base.<> ((Data.Aeson..=) "receiver" (customerSources'Data'Receiver obj) GHC.Base.<> ((Data.Aeson..=) "recipient" (customerSources'Data'Recipient obj) GHC.Base.<> ((Data.Aeson..=) "redirect" (customerSources'Data'Redirect obj) GHC.Base.<> ((Data.Aeson..=) "refund_address" (customerSources'Data'RefundAddress obj) GHC.Base.<> ((Data.Aeson..=) "reusable" (customerSources'Data'Reusable obj) GHC.Base.<> ((Data.Aeson..=) "routing_number" (customerSources'Data'RoutingNumber obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (customerSources'Data'SepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "sofort" (customerSources'Data'Sofort obj) GHC.Base.<> ((Data.Aeson..=) "source_order" (customerSources'Data'SourceOrder obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (customerSources'Data'StatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "status" (customerSources'Data'Status obj) GHC.Base.<> ((Data.Aeson..=) "three_d_secure" (customerSources'Data'ThreeDSecure obj) GHC.Base.<> ((Data.Aeson..=) "tokenization_method" (customerSources'Data'TokenizationMethod obj) GHC.Base.<> ((Data.Aeson..=) "transactions" (customerSources'Data'Transactions obj) GHC.Base.<> ((Data.Aeson..=) "type" (customerSources'Data'Type obj) GHC.Base.<> ((Data.Aeson..=) "uncaptured_funds" (customerSources'Data'UncapturedFunds obj) GHC.Base.<> ((Data.Aeson..=) "usage" (customerSources'Data'Usage obj) GHC.Base.<> ((Data.Aeson..=) "used" (customerSources'Data'Used obj) GHC.Base.<> ((Data.Aeson..=) "used_for_payment" (customerSources'Data'UsedForPayment obj) GHC.Base.<> ((Data.Aeson..=) "username" (customerSources'Data'Username obj) GHC.Base.<> (Data.Aeson..=) "wechat" (customerSources'Data'Wechat obj)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerSources'Data'" (\obj -> ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((GHC.Base.pure CustomerSources'Data' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "active")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_received")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_payout_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bitcoin_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bitcoin_amount_received")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bitcoin_uri")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_secret")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "code_verification")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "filled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "flow")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "inbound_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "owner")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receiver")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "recipient")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "redirect")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "refund_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "reusable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_order")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "three_d_secure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tokenization_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transactions")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncaptured_funds")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "used")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "used_for_payment")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "username")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat"))
-- | Define the one-of schema customerSources\'Data\'Account\'
-- 
-- The ID of the account that the bank account is associated with.
data CustomerSources'Data'Account'Variants
    = CustomerSources'Data'Account'Account Account
    | CustomerSources'Data'Account'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CustomerSources'Data'Account'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CustomerSources'Data'Account'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema customerSources\'Data\'Available_payout_methods\'
-- 
-- 
data CustomerSources'Data'AvailablePayoutMethods'
    = CustomerSources'Data'AvailablePayoutMethods'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerSources'Data'AvailablePayoutMethods'EnumTyped GHC.Base.String
    | CustomerSources'Data'AvailablePayoutMethods'EnumStringInstant
    | CustomerSources'Data'AvailablePayoutMethods'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Data'AvailablePayoutMethods'
    where toJSON (CustomerSources'Data'AvailablePayoutMethods'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSources'Data'AvailablePayoutMethods'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSources'Data'AvailablePayoutMethods'EnumStringInstant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant"
          toJSON (CustomerSources'Data'AvailablePayoutMethods'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON CustomerSources'Data'AvailablePayoutMethods'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant")
                                          then CustomerSources'Data'AvailablePayoutMethods'EnumStringInstant
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                then CustomerSources'Data'AvailablePayoutMethods'EnumStringStandard
                                                else CustomerSources'Data'AvailablePayoutMethods'EnumOther val)
-- | Define the one-of schema customerSources\'Data\'Customer\'
-- 
-- The ID of the customer associated with this Alipay Account.
data CustomerSources'Data'Customer'Variants
    = CustomerSources'Data'Customer'Customer Customer
    | CustomerSources'Data'Customer'DeletedCustomer DeletedCustomer
    | CustomerSources'Data'Customer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CustomerSources'Data'Customer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CustomerSources'Data'Customer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema customerSources\'Data\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data CustomerSources'Data'Metadata' = CustomerSources'Data'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Data'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerSources'Data'Metadata'" (\obj -> GHC.Base.pure CustomerSources'Data'Metadata')
-- | Defines the enum schema customerSources\'Data\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data CustomerSources'Data'Object'
    = CustomerSources'Data'Object'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerSources'Data'Object'EnumTyped GHC.Base.String
    | CustomerSources'Data'Object'EnumStringAlipayAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Data'Object'
    where toJSON (CustomerSources'Data'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSources'Data'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSources'Data'Object'EnumStringAlipayAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay_account"
instance Data.Aeson.FromJSON CustomerSources'Data'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay_account")
                                          then CustomerSources'Data'Object'EnumStringAlipayAccount
                                          else CustomerSources'Data'Object'EnumOther val)
-- | Defines the data type for the schema customerSources\'Data\'Owner\'
-- 
-- Information about the owner of the payment instrument that may be used or required by particular source types.
data CustomerSources'Data'Owner' = CustomerSources'Data'Owner' {
  -- | address: Owner\'s address.
  customerSources'Data'Owner'Address :: (GHC.Maybe.Maybe CustomerSources'Data'Owner'Address')
  -- | email: Owner\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'Email :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s full name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Owner\'s phone number (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_address: Verified owner\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , customerSources'Data'Owner'VerifiedAddress :: (GHC.Maybe.Maybe CustomerSources'Data'Owner'VerifiedAddress')
  -- | verified_email: Verified owner\'s email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'VerifiedEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_name: Verified owner\'s full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'VerifiedName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_phone: Verified owner\'s phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'VerifiedPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Data'Owner'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (customerSources'Data'Owner'Address obj) : (Data.Aeson..=) "email" (customerSources'Data'Owner'Email obj) : (Data.Aeson..=) "name" (customerSources'Data'Owner'Name obj) : (Data.Aeson..=) "phone" (customerSources'Data'Owner'Phone obj) : (Data.Aeson..=) "verified_address" (customerSources'Data'Owner'VerifiedAddress obj) : (Data.Aeson..=) "verified_email" (customerSources'Data'Owner'VerifiedEmail obj) : (Data.Aeson..=) "verified_name" (customerSources'Data'Owner'VerifiedName obj) : (Data.Aeson..=) "verified_phone" (customerSources'Data'Owner'VerifiedPhone obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (customerSources'Data'Owner'Address obj) GHC.Base.<> ((Data.Aeson..=) "email" (customerSources'Data'Owner'Email obj) GHC.Base.<> ((Data.Aeson..=) "name" (customerSources'Data'Owner'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (customerSources'Data'Owner'Phone obj) GHC.Base.<> ((Data.Aeson..=) "verified_address" (customerSources'Data'Owner'VerifiedAddress obj) GHC.Base.<> ((Data.Aeson..=) "verified_email" (customerSources'Data'Owner'VerifiedEmail obj) GHC.Base.<> ((Data.Aeson..=) "verified_name" (customerSources'Data'Owner'VerifiedName obj) GHC.Base.<> (Data.Aeson..=) "verified_phone" (customerSources'Data'Owner'VerifiedPhone obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'Owner'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerSources'Data'Owner'" (\obj -> (((((((GHC.Base.pure CustomerSources'Data'Owner' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_phone"))
-- | Defines the data type for the schema customerSources\'Data\'Owner\'Address\'
-- 
-- Owner\\\'s address.
data CustomerSources'Data'Owner'Address' = CustomerSources'Data'Owner'Address' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  customerSources'Data'Owner'Address'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'Address'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'Address'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'Address'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'Address'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'Address'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Data'Owner'Address'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (customerSources'Data'Owner'Address'City obj) : (Data.Aeson..=) "country" (customerSources'Data'Owner'Address'Country obj) : (Data.Aeson..=) "line1" (customerSources'Data'Owner'Address'Line1 obj) : (Data.Aeson..=) "line2" (customerSources'Data'Owner'Address'Line2 obj) : (Data.Aeson..=) "postal_code" (customerSources'Data'Owner'Address'PostalCode obj) : (Data.Aeson..=) "state" (customerSources'Data'Owner'Address'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (customerSources'Data'Owner'Address'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (customerSources'Data'Owner'Address'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (customerSources'Data'Owner'Address'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (customerSources'Data'Owner'Address'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (customerSources'Data'Owner'Address'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (customerSources'Data'Owner'Address'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'Owner'Address'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerSources'Data'Owner'Address'" (\obj -> (((((GHC.Base.pure CustomerSources'Data'Owner'Address' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema customerSources\'Data\'Owner\'Verified_address\'
-- 
-- Verified owner\\\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
data CustomerSources'Data'Owner'VerifiedAddress' = CustomerSources'Data'Owner'VerifiedAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  customerSources'Data'Owner'VerifiedAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'VerifiedAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'VerifiedAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'VerifiedAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'VerifiedAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Owner'VerifiedAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Data'Owner'VerifiedAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (customerSources'Data'Owner'VerifiedAddress'City obj) : (Data.Aeson..=) "country" (customerSources'Data'Owner'VerifiedAddress'Country obj) : (Data.Aeson..=) "line1" (customerSources'Data'Owner'VerifiedAddress'Line1 obj) : (Data.Aeson..=) "line2" (customerSources'Data'Owner'VerifiedAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (customerSources'Data'Owner'VerifiedAddress'PostalCode obj) : (Data.Aeson..=) "state" (customerSources'Data'Owner'VerifiedAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (customerSources'Data'Owner'VerifiedAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (customerSources'Data'Owner'VerifiedAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (customerSources'Data'Owner'VerifiedAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (customerSources'Data'Owner'VerifiedAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (customerSources'Data'Owner'VerifiedAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (customerSources'Data'Owner'VerifiedAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'Owner'VerifiedAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerSources'Data'Owner'VerifiedAddress'" (\obj -> (((((GHC.Base.pure CustomerSources'Data'Owner'VerifiedAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Define the one-of schema customerSources\'Data\'Recipient\'
-- 
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data CustomerSources'Data'Recipient'Variants
    = CustomerSources'Data'Recipient'Recipient Recipient
    | CustomerSources'Data'Recipient'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CustomerSources'Data'Recipient'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CustomerSources'Data'Recipient'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema customerSources\'Data\'Transactions\'
-- 
-- A list with one entry for each time that the customer sent bitcoin to the receiver. Hidden when viewing the receiver with a publishable key.
data CustomerSources'Data'Transactions' = CustomerSources'Data'Transactions' {
  -- | data: Details about each object.
  customerSources'Data'Transactions'Data :: ([] BitcoinTransaction)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , customerSources'Data'Transactions'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , customerSources'Data'Transactions'Object :: CustomerSources'Data'Transactions'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSources'Data'Transactions'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Data'Transactions'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (customerSources'Data'Transactions'Data obj) : (Data.Aeson..=) "has_more" (customerSources'Data'Transactions'HasMore obj) : (Data.Aeson..=) "object" (customerSources'Data'Transactions'Object obj) : (Data.Aeson..=) "url" (customerSources'Data'Transactions'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (customerSources'Data'Transactions'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (customerSources'Data'Transactions'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (customerSources'Data'Transactions'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (customerSources'Data'Transactions'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'Transactions'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerSources'Data'Transactions'" (\obj -> (((GHC.Base.pure CustomerSources'Data'Transactions' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema customerSources\'Data\'Transactions\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data CustomerSources'Data'Transactions'Object'
    = CustomerSources'Data'Transactions'Object'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerSources'Data'Transactions'Object'EnumTyped GHC.Base.String
    | CustomerSources'Data'Transactions'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Data'Transactions'Object'
    where toJSON (CustomerSources'Data'Transactions'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSources'Data'Transactions'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSources'Data'Transactions'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON CustomerSources'Data'Transactions'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then CustomerSources'Data'Transactions'Object'EnumStringList
                                          else CustomerSources'Data'Transactions'Object'EnumOther val)
-- | Defines the enum schema customerSources\'Data\'Type\'
-- 
-- The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
data CustomerSources'Data'Type'
    = CustomerSources'Data'Type'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerSources'Data'Type'EnumTyped GHC.Base.String
    | CustomerSources'Data'Type'EnumStringAchCreditTransfer
    | CustomerSources'Data'Type'EnumStringAchDebit
    | CustomerSources'Data'Type'EnumStringAlipay
    | CustomerSources'Data'Type'EnumStringBancontact
    | CustomerSources'Data'Type'EnumStringCard
    | CustomerSources'Data'Type'EnumStringCardPresent
    | CustomerSources'Data'Type'EnumStringEps
    | CustomerSources'Data'Type'EnumStringGiropay
    | CustomerSources'Data'Type'EnumStringIdeal
    | CustomerSources'Data'Type'EnumStringKlarna
    | CustomerSources'Data'Type'EnumStringMultibanco
    | CustomerSources'Data'Type'EnumStringP24
    | CustomerSources'Data'Type'EnumStringSepaDebit
    | CustomerSources'Data'Type'EnumStringSofort
    | CustomerSources'Data'Type'EnumStringThreeDSecure
    | CustomerSources'Data'Type'EnumStringWechat
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Data'Type'
    where toJSON (CustomerSources'Data'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSources'Data'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSources'Data'Type'EnumStringAchCreditTransfer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_credit_transfer"
          toJSON (CustomerSources'Data'Type'EnumStringAchDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_debit"
          toJSON (CustomerSources'Data'Type'EnumStringAlipay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay"
          toJSON (CustomerSources'Data'Type'EnumStringBancontact) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bancontact"
          toJSON (CustomerSources'Data'Type'EnumStringCard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card"
          toJSON (CustomerSources'Data'Type'EnumStringCardPresent) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_present"
          toJSON (CustomerSources'Data'Type'EnumStringEps) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eps"
          toJSON (CustomerSources'Data'Type'EnumStringGiropay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "giropay"
          toJSON (CustomerSources'Data'Type'EnumStringIdeal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal"
          toJSON (CustomerSources'Data'Type'EnumStringKlarna) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "klarna"
          toJSON (CustomerSources'Data'Type'EnumStringMultibanco) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multibanco"
          toJSON (CustomerSources'Data'Type'EnumStringP24) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "p24"
          toJSON (CustomerSources'Data'Type'EnumStringSepaDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit"
          toJSON (CustomerSources'Data'Type'EnumStringSofort) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sofort"
          toJSON (CustomerSources'Data'Type'EnumStringThreeDSecure) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure"
          toJSON (CustomerSources'Data'Type'EnumStringWechat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wechat"
instance Data.Aeson.FromJSON CustomerSources'Data'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_credit_transfer")
                                          then CustomerSources'Data'Type'EnumStringAchCreditTransfer
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_debit")
                                                then CustomerSources'Data'Type'EnumStringAchDebit
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay")
                                                      then CustomerSources'Data'Type'EnumStringAlipay
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bancontact")
                                                            then CustomerSources'Data'Type'EnumStringBancontact
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card")
                                                                  then CustomerSources'Data'Type'EnumStringCard
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_present")
                                                                        then CustomerSources'Data'Type'EnumStringCardPresent
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eps")
                                                                              then CustomerSources'Data'Type'EnumStringEps
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "giropay")
                                                                                    then CustomerSources'Data'Type'EnumStringGiropay
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal")
                                                                                          then CustomerSources'Data'Type'EnumStringIdeal
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "klarna")
                                                                                                then CustomerSources'Data'Type'EnumStringKlarna
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multibanco")
                                                                                                      then CustomerSources'Data'Type'EnumStringMultibanco
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "p24")
                                                                                                            then CustomerSources'Data'Type'EnumStringP24
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit")
                                                                                                                  then CustomerSources'Data'Type'EnumStringSepaDebit
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sofort")
                                                                                                                        then CustomerSources'Data'Type'EnumStringSofort
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure")
                                                                                                                              then CustomerSources'Data'Type'EnumStringThreeDSecure
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wechat")
                                                                                                                                    then CustomerSources'Data'Type'EnumStringWechat
                                                                                                                                    else CustomerSources'Data'Type'EnumOther val)
-- | Defines the enum schema customerSources\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data CustomerSources'Object'
    = CustomerSources'Object'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerSources'Object'EnumTyped GHC.Base.String
    | CustomerSources'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSources'Object'
    where toJSON (CustomerSources'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSources'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSources'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON CustomerSources'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then CustomerSources'Object'EnumStringList
                                          else CustomerSources'Object'EnumOther val)
-- | Defines the data type for the schema customerSubscriptions\'
-- 
-- The customer\'s current subscriptions, if any.
data CustomerSubscriptions' = CustomerSubscriptions' {
  -- | data: Details about each object.
  customerSubscriptions'Data :: ([] Subscription)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , customerSubscriptions'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , customerSubscriptions'Object :: CustomerSubscriptions'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerSubscriptions'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSubscriptions'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (customerSubscriptions'Data obj) : (Data.Aeson..=) "has_more" (customerSubscriptions'HasMore obj) : (Data.Aeson..=) "object" (customerSubscriptions'Object obj) : (Data.Aeson..=) "url" (customerSubscriptions'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (customerSubscriptions'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (customerSubscriptions'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (customerSubscriptions'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (customerSubscriptions'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerSubscriptions'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerSubscriptions'" (\obj -> (((GHC.Base.pure CustomerSubscriptions' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema customerSubscriptions\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data CustomerSubscriptions'Object'
    = CustomerSubscriptions'Object'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerSubscriptions'Object'EnumTyped GHC.Base.String
    | CustomerSubscriptions'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerSubscriptions'Object'
    where toJSON (CustomerSubscriptions'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSubscriptions'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerSubscriptions'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON CustomerSubscriptions'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then CustomerSubscriptions'Object'EnumStringList
                                          else CustomerSubscriptions'Object'EnumOther val)
-- | Defines the enum schema customerTax_exempt\'
-- 
-- Describes the customer\'s tax exemption status. One of \`none\`, \`exempt\`, or \`reverse\`. When set to \`reverse\`, invoice and receipt PDFs include the text **\"Reverse charge\"**.
data CustomerTaxExempt'
    = CustomerTaxExempt'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerTaxExempt'EnumTyped GHC.Base.String
    | CustomerTaxExempt'EnumStringExempt
    | CustomerTaxExempt'EnumStringNone
    | CustomerTaxExempt'EnumStringReverse
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerTaxExempt'
    where toJSON (CustomerTaxExempt'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerTaxExempt'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerTaxExempt'EnumStringExempt) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exempt"
          toJSON (CustomerTaxExempt'EnumStringNone) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "none"
          toJSON (CustomerTaxExempt'EnumStringReverse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reverse"
instance Data.Aeson.FromJSON CustomerTaxExempt'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exempt")
                                          then CustomerTaxExempt'EnumStringExempt
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "none")
                                                then CustomerTaxExempt'EnumStringNone
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reverse")
                                                      then CustomerTaxExempt'EnumStringReverse
                                                      else CustomerTaxExempt'EnumOther val)
-- | Defines the data type for the schema customerTax_ids\'
-- 
-- The customer\'s tax IDs.
data CustomerTaxIds' = CustomerTaxIds' {
  -- | data: Details about each object.
  customerTaxIds'Data :: ([] TaxId)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , customerTaxIds'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , customerTaxIds'Object :: CustomerTaxIds'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerTaxIds'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerTaxIds'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (customerTaxIds'Data obj) : (Data.Aeson..=) "has_more" (customerTaxIds'HasMore obj) : (Data.Aeson..=) "object" (customerTaxIds'Object obj) : (Data.Aeson..=) "url" (customerTaxIds'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (customerTaxIds'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (customerTaxIds'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (customerTaxIds'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (customerTaxIds'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerTaxIds'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerTaxIds'" (\obj -> (((GHC.Base.pure CustomerTaxIds' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema customerTax_ids\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data CustomerTaxIds'Object'
    = CustomerTaxIds'Object'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerTaxIds'Object'EnumTyped GHC.Base.String
    | CustomerTaxIds'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerTaxIds'Object'
    where toJSON (CustomerTaxIds'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerTaxIds'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerTaxIds'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON CustomerTaxIds'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then CustomerTaxIds'Object'EnumStringList
                                          else CustomerTaxIds'Object'EnumOther val)
-- | Defines the data type for the schema customer_balance_transaction
-- 
-- Each customer has a [\`balance\`](https:\/\/stripe.com\/docs\/api\/customers\/object\#customer_object-balance) value,
-- which denotes a debit or credit that\'s automatically applied to their next invoice upon finalization.
-- You may modify the value directly by using the [update customer API](https:\/\/stripe.com\/docs\/api\/customers\/update),
-- or by creating a Customer Balance Transaction, which increments or decrements the customer\'s \`balance\` by the specified \`amount\`.
-- 
-- Related guide: [Customer Balance](https:\/\/stripe.com\/docs\/billing\/customer\/balance) to learn more.
data CustomerBalanceTransaction = CustomerBalanceTransaction {
  -- | amount: The amount of the transaction. A negative value is a credit for the customer\'s balance, and a positive value is a debit to the customer\'s \`balance\`.
  customerBalanceTransactionAmount :: GHC.Integer.Type.Integer
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , customerBalanceTransactionCreated :: GHC.Integer.Type.Integer
  -- | credit_note: The ID of the credit note (if any) related to the transaction.
  , customerBalanceTransactionCreditNote :: (GHC.Maybe.Maybe CustomerBalanceTransactionCreditNote'Variants)
  -- | 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).
  , customerBalanceTransactionCurrency :: GHC.Base.String
  -- | customer: The ID of the customer the transaction belongs to.
  , customerBalanceTransactionCustomer :: CustomerBalanceTransactionCustomer'Variants
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerBalanceTransactionDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ending_balance: The customer\'s \`balance\` after the transaction was applied. A negative value decreases the amount due on the customer\'s next invoice. A positive value increases the amount due on the customer\'s next invoice.
  , customerBalanceTransactionEndingBalance :: GHC.Integer.Type.Integer
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , customerBalanceTransactionId :: GHC.Base.String
  -- | invoice: The ID of the invoice (if any) related to the transaction.
  , customerBalanceTransactionInvoice :: (GHC.Maybe.Maybe CustomerBalanceTransactionInvoice'Variants)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , customerBalanceTransactionLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , customerBalanceTransactionMetadata :: (GHC.Maybe.Maybe CustomerBalanceTransactionMetadata')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , customerBalanceTransactionObject :: CustomerBalanceTransactionObject'
  -- | type: Transaction type: \`adjustment\`, \`applied_to_invoice\`, \`credit_note\`, \`initial\`, \`invoice_too_large\`, \`invoice_too_small\`, \`unspent_receiver_credit\`, or \`unapplied_from_invoice\`. See the [Customer Balance page](https:\/\/stripe.com\/docs\/billing\/customer\/balance\#types) to learn more about transaction types.
  , customerBalanceTransactionType :: CustomerBalanceTransactionType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerBalanceTransaction
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (customerBalanceTransactionAmount obj) : (Data.Aeson..=) "created" (customerBalanceTransactionCreated obj) : (Data.Aeson..=) "credit_note" (customerBalanceTransactionCreditNote obj) : (Data.Aeson..=) "currency" (customerBalanceTransactionCurrency obj) : (Data.Aeson..=) "customer" (customerBalanceTransactionCustomer obj) : (Data.Aeson..=) "description" (customerBalanceTransactionDescription obj) : (Data.Aeson..=) "ending_balance" (customerBalanceTransactionEndingBalance obj) : (Data.Aeson..=) "id" (customerBalanceTransactionId obj) : (Data.Aeson..=) "invoice" (customerBalanceTransactionInvoice obj) : (Data.Aeson..=) "livemode" (customerBalanceTransactionLivemode obj) : (Data.Aeson..=) "metadata" (customerBalanceTransactionMetadata obj) : (Data.Aeson..=) "object" (customerBalanceTransactionObject obj) : (Data.Aeson..=) "type" (customerBalanceTransactionType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (customerBalanceTransactionAmount obj) GHC.Base.<> ((Data.Aeson..=) "created" (customerBalanceTransactionCreated obj) GHC.Base.<> ((Data.Aeson..=) "credit_note" (customerBalanceTransactionCreditNote obj) GHC.Base.<> ((Data.Aeson..=) "currency" (customerBalanceTransactionCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (customerBalanceTransactionCustomer obj) GHC.Base.<> ((Data.Aeson..=) "description" (customerBalanceTransactionDescription obj) GHC.Base.<> ((Data.Aeson..=) "ending_balance" (customerBalanceTransactionEndingBalance obj) GHC.Base.<> ((Data.Aeson..=) "id" (customerBalanceTransactionId obj) GHC.Base.<> ((Data.Aeson..=) "invoice" (customerBalanceTransactionInvoice obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (customerBalanceTransactionLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (customerBalanceTransactionMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (customerBalanceTransactionObject obj) GHC.Base.<> (Data.Aeson..=) "type" (customerBalanceTransactionType obj)))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerBalanceTransaction
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerBalanceTransaction" (\obj -> ((((((((((((GHC.Base.pure CustomerBalanceTransaction GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "credit_note")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "ending_balance")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Define the one-of schema customer_balance_transactionCredit_note\'
-- 
-- The ID of the credit note (if any) related to the transaction.
data CustomerBalanceTransactionCreditNote'Variants
    = CustomerBalanceTransactionCreditNote'CreditNote CreditNote
    | CustomerBalanceTransactionCreditNote'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CustomerBalanceTransactionCreditNote'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CustomerBalanceTransactionCreditNote'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema customer_balance_transactionCustomer\'
-- 
-- The ID of the customer the transaction belongs to.
data CustomerBalanceTransactionCustomer'Variants
    = CustomerBalanceTransactionCustomer'Customer Customer
    | CustomerBalanceTransactionCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CustomerBalanceTransactionCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CustomerBalanceTransactionCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema customer_balance_transactionInvoice\'
-- 
-- The ID of the invoice (if any) related to the transaction.
data CustomerBalanceTransactionInvoice'Variants
    = CustomerBalanceTransactionInvoice'Invoice Invoice
    | CustomerBalanceTransactionInvoice'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON CustomerBalanceTransactionInvoice'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON CustomerBalanceTransactionInvoice'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema customer_balance_transactionMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data CustomerBalanceTransactionMetadata' = CustomerBalanceTransactionMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerBalanceTransactionMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerBalanceTransactionMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "CustomerBalanceTransactionMetadata'" (\obj -> GHC.Base.pure CustomerBalanceTransactionMetadata')
-- | Defines the enum schema customer_balance_transactionObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data CustomerBalanceTransactionObject'
    = CustomerBalanceTransactionObject'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerBalanceTransactionObject'EnumTyped GHC.Base.String
    | CustomerBalanceTransactionObject'EnumStringCustomerBalanceTransaction
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerBalanceTransactionObject'
    where toJSON (CustomerBalanceTransactionObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerBalanceTransactionObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerBalanceTransactionObject'EnumStringCustomerBalanceTransaction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "customer_balance_transaction"
instance Data.Aeson.FromJSON CustomerBalanceTransactionObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "customer_balance_transaction")
                                          then CustomerBalanceTransactionObject'EnumStringCustomerBalanceTransaction
                                          else CustomerBalanceTransactionObject'EnumOther val)
-- | Defines the enum schema customer_balance_transactionType\'
-- 
-- Transaction type: \`adjustment\`, \`applied_to_invoice\`, \`credit_note\`, \`initial\`, \`invoice_too_large\`, \`invoice_too_small\`, \`unspent_receiver_credit\`, or \`unapplied_from_invoice\`. See the [Customer Balance page](https:\/\/stripe.com\/docs\/billing\/customer\/balance\#types) to learn more about transaction types.
data CustomerBalanceTransactionType'
    = CustomerBalanceTransactionType'EnumOther Data.Aeson.Types.Internal.Value
    | CustomerBalanceTransactionType'EnumTyped GHC.Base.String
    | CustomerBalanceTransactionType'EnumStringAdjustment
    | CustomerBalanceTransactionType'EnumStringAppliedToInvoice
    | CustomerBalanceTransactionType'EnumStringCreditNote
    | CustomerBalanceTransactionType'EnumStringInitial
    | CustomerBalanceTransactionType'EnumStringInvoiceTooLarge
    | CustomerBalanceTransactionType'EnumStringInvoiceTooSmall
    | CustomerBalanceTransactionType'EnumStringMigration
    | CustomerBalanceTransactionType'EnumStringUnappliedFromInvoice
    | CustomerBalanceTransactionType'EnumStringUnspentReceiverCredit
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON CustomerBalanceTransactionType'
    where toJSON (CustomerBalanceTransactionType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerBalanceTransactionType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (CustomerBalanceTransactionType'EnumStringAdjustment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "adjustment"
          toJSON (CustomerBalanceTransactionType'EnumStringAppliedToInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "applied_to_invoice"
          toJSON (CustomerBalanceTransactionType'EnumStringCreditNote) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_note"
          toJSON (CustomerBalanceTransactionType'EnumStringInitial) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "initial"
          toJSON (CustomerBalanceTransactionType'EnumStringInvoiceTooLarge) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invoice_too_large"
          toJSON (CustomerBalanceTransactionType'EnumStringInvoiceTooSmall) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invoice_too_small"
          toJSON (CustomerBalanceTransactionType'EnumStringMigration) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "migration"
          toJSON (CustomerBalanceTransactionType'EnumStringUnappliedFromInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unapplied_from_invoice"
          toJSON (CustomerBalanceTransactionType'EnumStringUnspentReceiverCredit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unspent_receiver_credit"
instance Data.Aeson.FromJSON CustomerBalanceTransactionType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "adjustment")
                                          then CustomerBalanceTransactionType'EnumStringAdjustment
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "applied_to_invoice")
                                                then CustomerBalanceTransactionType'EnumStringAppliedToInvoice
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_note")
                                                      then CustomerBalanceTransactionType'EnumStringCreditNote
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "initial")
                                                            then CustomerBalanceTransactionType'EnumStringInitial
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invoice_too_large")
                                                                  then CustomerBalanceTransactionType'EnumStringInvoiceTooLarge
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invoice_too_small")
                                                                        then CustomerBalanceTransactionType'EnumStringInvoiceTooSmall
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "migration")
                                                                              then CustomerBalanceTransactionType'EnumStringMigration
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unapplied_from_invoice")
                                                                                    then CustomerBalanceTransactionType'EnumStringUnappliedFromInvoice
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unspent_receiver_credit")
                                                                                          then CustomerBalanceTransactionType'EnumStringUnspentReceiverCredit
                                                                                          else CustomerBalanceTransactionType'EnumOther val)
-- | Defines the data type for the schema deleted_external_account
-- 
-- 
data DeletedExternalAccount = DeletedExternalAccount {
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  deletedExternalAccountCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | deleted: Always true for a deleted object
  , deletedExternalAccountDeleted :: (GHC.Maybe.Maybe DeletedExternalAccountDeleted')
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , deletedExternalAccountId :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , deletedExternalAccountObject :: (GHC.Maybe.Maybe DeletedExternalAccountObject')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON DeletedExternalAccount
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "currency" (deletedExternalAccountCurrency obj) : (Data.Aeson..=) "deleted" (deletedExternalAccountDeleted obj) : (Data.Aeson..=) "id" (deletedExternalAccountId obj) : (Data.Aeson..=) "object" (deletedExternalAccountObject obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "currency" (deletedExternalAccountCurrency obj) GHC.Base.<> ((Data.Aeson..=) "deleted" (deletedExternalAccountDeleted obj) GHC.Base.<> ((Data.Aeson..=) "id" (deletedExternalAccountId obj) GHC.Base.<> (Data.Aeson..=) "object" (deletedExternalAccountObject obj))))
instance Data.Aeson.Types.FromJSON.FromJSON DeletedExternalAccount
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "DeletedExternalAccount" (\obj -> (((GHC.Base.pure DeletedExternalAccount GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "deleted")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object"))
-- | Defines the enum schema deleted_external_accountDeleted\'
-- 
-- Always true for a deleted object
data DeletedExternalAccountDeleted'
    = DeletedExternalAccountDeleted'EnumOther Data.Aeson.Types.Internal.Value
    | DeletedExternalAccountDeleted'EnumTyped GHC.Types.Bool
    | DeletedExternalAccountDeleted'EnumBoolTrue
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON DeletedExternalAccountDeleted'
    where toJSON (DeletedExternalAccountDeleted'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DeletedExternalAccountDeleted'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DeletedExternalAccountDeleted'EnumBoolTrue) = Data.Aeson.Types.Internal.Bool GHC.Types.True
instance Data.Aeson.FromJSON DeletedExternalAccountDeleted'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== Data.Aeson.Types.Internal.Bool GHC.Types.True
                                          then DeletedExternalAccountDeleted'EnumBoolTrue
                                          else DeletedExternalAccountDeleted'EnumOther val)
-- | Defines the enum schema deleted_external_accountObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data DeletedExternalAccountObject'
    = DeletedExternalAccountObject'EnumOther Data.Aeson.Types.Internal.Value
    | DeletedExternalAccountObject'EnumTyped GHC.Base.String
    | DeletedExternalAccountObject'EnumStringBankAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON DeletedExternalAccountObject'
    where toJSON (DeletedExternalAccountObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DeletedExternalAccountObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DeletedExternalAccountObject'EnumStringBankAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account"
instance Data.Aeson.FromJSON DeletedExternalAccountObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account")
                                          then DeletedExternalAccountObject'EnumStringBankAccount
                                          else DeletedExternalAccountObject'EnumOther val)
-- | Defines the data type for the schema deleted_payment_source
-- 
-- 
data DeletedPaymentSource = DeletedPaymentSource {
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  deletedPaymentSourceCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | deleted: Always true for a deleted object
  , deletedPaymentSourceDeleted :: (GHC.Maybe.Maybe DeletedPaymentSourceDeleted')
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , deletedPaymentSourceId :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , deletedPaymentSourceObject :: (GHC.Maybe.Maybe DeletedPaymentSourceObject')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON DeletedPaymentSource
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "currency" (deletedPaymentSourceCurrency obj) : (Data.Aeson..=) "deleted" (deletedPaymentSourceDeleted obj) : (Data.Aeson..=) "id" (deletedPaymentSourceId obj) : (Data.Aeson..=) "object" (deletedPaymentSourceObject obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "currency" (deletedPaymentSourceCurrency obj) GHC.Base.<> ((Data.Aeson..=) "deleted" (deletedPaymentSourceDeleted obj) GHC.Base.<> ((Data.Aeson..=) "id" (deletedPaymentSourceId obj) GHC.Base.<> (Data.Aeson..=) "object" (deletedPaymentSourceObject obj))))
instance Data.Aeson.Types.FromJSON.FromJSON DeletedPaymentSource
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "DeletedPaymentSource" (\obj -> (((GHC.Base.pure DeletedPaymentSource GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "deleted")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object"))
-- | Defines the enum schema deleted_payment_sourceDeleted\'
-- 
-- Always true for a deleted object
data DeletedPaymentSourceDeleted'
    = DeletedPaymentSourceDeleted'EnumOther Data.Aeson.Types.Internal.Value
    | DeletedPaymentSourceDeleted'EnumTyped GHC.Types.Bool
    | DeletedPaymentSourceDeleted'EnumBoolTrue
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON DeletedPaymentSourceDeleted'
    where toJSON (DeletedPaymentSourceDeleted'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DeletedPaymentSourceDeleted'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DeletedPaymentSourceDeleted'EnumBoolTrue) = Data.Aeson.Types.Internal.Bool GHC.Types.True
instance Data.Aeson.FromJSON DeletedPaymentSourceDeleted'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== Data.Aeson.Types.Internal.Bool GHC.Types.True
                                          then DeletedPaymentSourceDeleted'EnumBoolTrue
                                          else DeletedPaymentSourceDeleted'EnumOther val)
-- | Defines the enum schema deleted_payment_sourceObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data DeletedPaymentSourceObject'
    = DeletedPaymentSourceObject'EnumOther Data.Aeson.Types.Internal.Value
    | DeletedPaymentSourceObject'EnumTyped GHC.Base.String
    | DeletedPaymentSourceObject'EnumStringAlipayAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON DeletedPaymentSourceObject'
    where toJSON (DeletedPaymentSourceObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DeletedPaymentSourceObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DeletedPaymentSourceObject'EnumStringAlipayAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay_account"
instance Data.Aeson.FromJSON DeletedPaymentSourceObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay_account")
                                          then DeletedPaymentSourceObject'EnumStringAlipayAccount
                                          else DeletedPaymentSourceObject'EnumOther val)
-- | Defines the data type for the schema discount
-- 
-- A discount represents the actual application of a coupon to a particular
-- customer. It contains information about when the discount began and when it
-- will end.
-- 
-- Related guide: [Applying Discounts to Subscriptions](https:\/\/stripe.com\/docs\/billing\/subscriptions\/discounts).
data Discount = Discount {
  -- | coupon: A coupon contains information about a percent-off or amount-off discount you
  -- might want to apply to a customer. Coupons may be applied to [invoices](https:\/\/stripe.com\/docs\/api\#invoices) or
  -- [orders](https:\/\/stripe.com\/docs\/api\#create_order-coupon). Coupons do not work with conventional one-off [charges](https:\/\/stripe.com\/docs\/api\#create_charge).
  discountCoupon :: Coupon
  -- | customer: The ID of the customer associated with this discount.
  , discountCustomer :: (GHC.Maybe.Maybe DiscountCustomer'Variants)
  -- | end: If the coupon has a duration of \`repeating\`, the date that this discount will end. If the coupon has a duration of \`once\` or \`forever\`, this attribute will be null.
  , discountEnd :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , discountObject :: DiscountObject'
  -- | start: Date that the coupon was applied.
  , discountStart :: GHC.Integer.Type.Integer
  -- | subscription: The subscription that this coupon is applied to, if it is applied to a particular subscription.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , discountSubscription :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Discount
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "coupon" (discountCoupon obj) : (Data.Aeson..=) "customer" (discountCustomer obj) : (Data.Aeson..=) "end" (discountEnd obj) : (Data.Aeson..=) "object" (discountObject obj) : (Data.Aeson..=) "start" (discountStart obj) : (Data.Aeson..=) "subscription" (discountSubscription obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "coupon" (discountCoupon obj) GHC.Base.<> ((Data.Aeson..=) "customer" (discountCustomer obj) GHC.Base.<> ((Data.Aeson..=) "end" (discountEnd obj) GHC.Base.<> ((Data.Aeson..=) "object" (discountObject obj) GHC.Base.<> ((Data.Aeson..=) "start" (discountStart obj) GHC.Base.<> (Data.Aeson..=) "subscription" (discountSubscription obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON Discount
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Discount" (\obj -> (((((GHC.Base.pure Discount GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "coupon")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "end")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "start")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription"))
-- | Define the one-of schema discountCustomer\'
-- 
-- The ID of the customer associated with this discount.
data DiscountCustomer'Variants
    = DiscountCustomer'Customer Customer
    | DiscountCustomer'DeletedCustomer DeletedCustomer
    | DiscountCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DiscountCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DiscountCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema discountObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data DiscountObject'
    = DiscountObject'EnumOther Data.Aeson.Types.Internal.Value
    | DiscountObject'EnumTyped GHC.Base.String
    | DiscountObject'EnumStringDiscount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON DiscountObject'
    where toJSON (DiscountObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DiscountObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DiscountObject'EnumStringDiscount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount"
instance Data.Aeson.FromJSON DiscountObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount")
                                          then DiscountObject'EnumStringDiscount
                                          else DiscountObject'EnumOther val)
-- | Defines the data type for the schema dispute
-- 
-- A dispute occurs when a customer questions your charge with their card issuer.
-- When this happens, you\'re given the opportunity to respond to the dispute with
-- evidence that shows that the charge is legitimate. You can find more
-- information about the dispute process in our [Disputes and
-- Fraud](\/docs\/disputes) documentation.
-- 
-- Related guide: [Disputes and Fraud](https:\/\/stripe.com\/docs\/disputes).
data Dispute = Dispute {
  -- | amount: Disputed amount. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed).
  disputeAmount :: GHC.Integer.Type.Integer
  -- | balance_transactions: List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute.
  , disputeBalanceTransactions :: ([] BalanceTransaction)
  -- | charge: ID of the charge that was disputed.
  , disputeCharge :: DisputeCharge'Variants
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , disputeCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , disputeCurrency :: GHC.Base.String
  -- | evidence: 
  , disputeEvidence :: DisputeEvidence
  -- | evidence_details: 
  , disputeEvidenceDetails :: DisputeEvidenceDetails
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeId :: GHC.Base.String
  -- | is_charge_refundable: If true, it is still possible to refund the disputed payment. Once the payment has been fully refunded, no further funds will be withdrawn from your Stripe account as a result of this dispute.
  , disputeIsChargeRefundable :: GHC.Types.Bool
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , disputeLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , disputeMetadata :: DisputeMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , disputeObject :: DisputeObject'
  -- | payment_intent: ID of the PaymentIntent that was disputed.
  , disputePaymentIntent :: (GHC.Maybe.Maybe DisputePaymentIntent'Variants)
  -- | reason: Reason given by cardholder for dispute. Possible values are \`bank_cannot_process\`, \`check_returned\`, \`credit_not_processed\`, \`customer_initiated\`, \`debit_not_authorized\`, \`duplicate\`, \`fraudulent\`, \`general\`, \`incorrect_account_details\`, \`insufficient_funds\`, \`product_not_received\`, \`product_unacceptable\`, \`subscription_canceled\`, or \`unrecognized\`. Read more about [dispute reasons](https:\/\/stripe.com\/docs\/disputes\/categories).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeReason :: GHC.Base.String
  -- | status: Current status of dispute. Possible values are \`warning_needs_response\`, \`warning_under_review\`, \`warning_closed\`, \`needs_response\`, \`under_review\`, \`charge_refunded\`, \`won\`, or \`lost\`.
  , disputeStatus :: DisputeStatus'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Dispute
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (disputeAmount obj) : (Data.Aeson..=) "balance_transactions" (disputeBalanceTransactions obj) : (Data.Aeson..=) "charge" (disputeCharge obj) : (Data.Aeson..=) "created" (disputeCreated obj) : (Data.Aeson..=) "currency" (disputeCurrency obj) : (Data.Aeson..=) "evidence" (disputeEvidence obj) : (Data.Aeson..=) "evidence_details" (disputeEvidenceDetails obj) : (Data.Aeson..=) "id" (disputeId obj) : (Data.Aeson..=) "is_charge_refundable" (disputeIsChargeRefundable obj) : (Data.Aeson..=) "livemode" (disputeLivemode obj) : (Data.Aeson..=) "metadata" (disputeMetadata obj) : (Data.Aeson..=) "object" (disputeObject obj) : (Data.Aeson..=) "payment_intent" (disputePaymentIntent obj) : (Data.Aeson..=) "reason" (disputeReason obj) : (Data.Aeson..=) "status" (disputeStatus obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (disputeAmount obj) GHC.Base.<> ((Data.Aeson..=) "balance_transactions" (disputeBalanceTransactions obj) GHC.Base.<> ((Data.Aeson..=) "charge" (disputeCharge obj) GHC.Base.<> ((Data.Aeson..=) "created" (disputeCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (disputeCurrency obj) GHC.Base.<> ((Data.Aeson..=) "evidence" (disputeEvidence obj) GHC.Base.<> ((Data.Aeson..=) "evidence_details" (disputeEvidenceDetails obj) GHC.Base.<> ((Data.Aeson..=) "id" (disputeId obj) GHC.Base.<> ((Data.Aeson..=) "is_charge_refundable" (disputeIsChargeRefundable obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (disputeLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (disputeMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (disputeObject obj) GHC.Base.<> ((Data.Aeson..=) "payment_intent" (disputePaymentIntent obj) GHC.Base.<> ((Data.Aeson..=) "reason" (disputeReason obj) GHC.Base.<> (Data.Aeson..=) "status" (disputeStatus obj)))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Dispute
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Dispute" (\obj -> ((((((((((((((GHC.Base.pure Dispute GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "balance_transactions")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "evidence")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "evidence_details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "is_charge_refundable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status"))
-- | Define the one-of schema disputeCharge\'
-- 
-- ID of the charge that was disputed.
data DisputeCharge'Variants
    = DisputeCharge'Charge Charge
    | DisputeCharge'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputeCharge'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputeCharge'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema disputeMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data DisputeMetadata' = DisputeMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON DisputeMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON DisputeMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "DisputeMetadata'" (\obj -> GHC.Base.pure DisputeMetadata')
-- | Defines the enum schema disputeObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data DisputeObject'
    = DisputeObject'EnumOther Data.Aeson.Types.Internal.Value
    | DisputeObject'EnumTyped GHC.Base.String
    | DisputeObject'EnumStringDispute
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON DisputeObject'
    where toJSON (DisputeObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DisputeObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DisputeObject'EnumStringDispute) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dispute"
instance Data.Aeson.FromJSON DisputeObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dispute")
                                          then DisputeObject'EnumStringDispute
                                          else DisputeObject'EnumOther val)
-- | Define the one-of schema disputePayment_intent\'
-- 
-- ID of the PaymentIntent that was disputed.
data DisputePaymentIntent'Variants
    = DisputePaymentIntent'PaymentIntent PaymentIntent
    | DisputePaymentIntent'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputePaymentIntent'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputePaymentIntent'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema disputeStatus\'
-- 
-- Current status of dispute. Possible values are \`warning_needs_response\`, \`warning_under_review\`, \`warning_closed\`, \`needs_response\`, \`under_review\`, \`charge_refunded\`, \`won\`, or \`lost\`.
data DisputeStatus'
    = DisputeStatus'EnumOther Data.Aeson.Types.Internal.Value
    | DisputeStatus'EnumTyped GHC.Base.String
    | DisputeStatus'EnumStringChargeRefunded
    | DisputeStatus'EnumStringLost
    | DisputeStatus'EnumStringNeedsResponse
    | DisputeStatus'EnumStringUnderReview
    | DisputeStatus'EnumStringWarningClosed
    | DisputeStatus'EnumStringWarningNeedsResponse
    | DisputeStatus'EnumStringWarningUnderReview
    | DisputeStatus'EnumStringWon
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON DisputeStatus'
    where toJSON (DisputeStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DisputeStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (DisputeStatus'EnumStringChargeRefunded) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge_refunded"
          toJSON (DisputeStatus'EnumStringLost) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lost"
          toJSON (DisputeStatus'EnumStringNeedsResponse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "needs_response"
          toJSON (DisputeStatus'EnumStringUnderReview) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "under_review"
          toJSON (DisputeStatus'EnumStringWarningClosed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "warning_closed"
          toJSON (DisputeStatus'EnumStringWarningNeedsResponse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "warning_needs_response"
          toJSON (DisputeStatus'EnumStringWarningUnderReview) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "warning_under_review"
          toJSON (DisputeStatus'EnumStringWon) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "won"
instance Data.Aeson.FromJSON DisputeStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge_refunded")
                                          then DisputeStatus'EnumStringChargeRefunded
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lost")
                                                then DisputeStatus'EnumStringLost
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "needs_response")
                                                      then DisputeStatus'EnumStringNeedsResponse
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "under_review")
                                                            then DisputeStatus'EnumStringUnderReview
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "warning_closed")
                                                                  then DisputeStatus'EnumStringWarningClosed
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "warning_needs_response")
                                                                        then DisputeStatus'EnumStringWarningNeedsResponse
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "warning_under_review")
                                                                              then DisputeStatus'EnumStringWarningUnderReview
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "won")
                                                                                    then DisputeStatus'EnumStringWon
                                                                                    else DisputeStatus'EnumOther val)
-- | Defines the data type for the schema dispute_evidence
-- 
-- 
data DisputeEvidence = DisputeEvidence {
  -- | access_activity_log: Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 150000
  disputeEvidenceAccessActivityLog :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | billing_address: The billing address provided by the customer.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeEvidenceBillingAddress :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | cancellation_policy: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Your subscription cancellation policy, as shown to the customer.
  , disputeEvidenceCancellationPolicy :: (GHC.Maybe.Maybe DisputeEvidenceCancellationPolicy'Variants)
  -- | cancellation_policy_disclosure: An explanation of how and when the customer was shown your refund policy prior to purchase.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 150000
  , disputeEvidenceCancellationPolicyDisclosure :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | cancellation_rebuttal: A justification for why the customer\'s subscription was not canceled.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 150000
  , disputeEvidenceCancellationRebuttal :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer_communication: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.
  , disputeEvidenceCustomerCommunication :: (GHC.Maybe.Maybe DisputeEvidenceCustomerCommunication'Variants)
  -- | customer_email_address: The email address of the customer.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeEvidenceCustomerEmailAddress :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer_name: The name of the customer.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeEvidenceCustomerName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer_purchase_ip: The IP address that the customer used when making the purchase.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeEvidenceCustomerPurchaseIp :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer_signature: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) A relevant document or contract showing the customer\'s signature.
  , disputeEvidenceCustomerSignature :: (GHC.Maybe.Maybe DisputeEvidenceCustomerSignature'Variants)
  -- | duplicate_charge_documentation: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.
  , disputeEvidenceDuplicateChargeDocumentation :: (GHC.Maybe.Maybe DisputeEvidenceDuplicateChargeDocumentation'Variants)
  -- | duplicate_charge_explanation: An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 150000
  , disputeEvidenceDuplicateChargeExplanation :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | duplicate_charge_id: The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeEvidenceDuplicateChargeId :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | product_description: A description of the product or service that was sold.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 150000
  , disputeEvidenceProductDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | receipt: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Any receipt or message sent to the customer notifying them of the charge.
  , disputeEvidenceReceipt :: (GHC.Maybe.Maybe DisputeEvidenceReceipt'Variants)
  -- | refund_policy: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Your refund policy, as shown to the customer.
  , disputeEvidenceRefundPolicy :: (GHC.Maybe.Maybe DisputeEvidenceRefundPolicy'Variants)
  -- | refund_policy_disclosure: Documentation demonstrating that the customer was shown your refund policy prior to purchase.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 150000
  , disputeEvidenceRefundPolicyDisclosure :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | refund_refusal_explanation: A justification for why the customer is not entitled to a refund.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 150000
  , disputeEvidenceRefundRefusalExplanation :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | service_date: The date on which the customer received or began receiving the purchased service, in a clear human-readable format.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeEvidenceServiceDate :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | service_documentation: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.
  , disputeEvidenceServiceDocumentation :: (GHC.Maybe.Maybe DisputeEvidenceServiceDocumentation'Variants)
  -- | shipping_address: The address to which a physical product was shipped. You should try to include as complete address information as possible.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeEvidenceShippingAddress :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | shipping_carrier: The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeEvidenceShippingCarrier :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | shipping_date: The date on which a physical product began its route to the shipping address, in a clear human-readable format.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , disputeEvidenceShippingDate :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | shipping_documentation: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer\'s full shipping address, if possible.
  , disputeEvidenceShippingDocumentation :: (GHC.Maybe.Maybe DisputeEvidenceShippingDocumentation'Variants)
  -- | shipping_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
  , disputeEvidenceShippingTrackingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | uncategorized_file: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Any additional evidence or statements.
  , disputeEvidenceUncategorizedFile :: (GHC.Maybe.Maybe DisputeEvidenceUncategorizedFile'Variants)
  -- | uncategorized_text: Any additional evidence or statements.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 150000
  , disputeEvidenceUncategorizedText :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON DisputeEvidence
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "access_activity_log" (disputeEvidenceAccessActivityLog obj) : (Data.Aeson..=) "billing_address" (disputeEvidenceBillingAddress obj) : (Data.Aeson..=) "cancellation_policy" (disputeEvidenceCancellationPolicy obj) : (Data.Aeson..=) "cancellation_policy_disclosure" (disputeEvidenceCancellationPolicyDisclosure obj) : (Data.Aeson..=) "cancellation_rebuttal" (disputeEvidenceCancellationRebuttal obj) : (Data.Aeson..=) "customer_communication" (disputeEvidenceCustomerCommunication obj) : (Data.Aeson..=) "customer_email_address" (disputeEvidenceCustomerEmailAddress obj) : (Data.Aeson..=) "customer_name" (disputeEvidenceCustomerName obj) : (Data.Aeson..=) "customer_purchase_ip" (disputeEvidenceCustomerPurchaseIp obj) : (Data.Aeson..=) "customer_signature" (disputeEvidenceCustomerSignature obj) : (Data.Aeson..=) "duplicate_charge_documentation" (disputeEvidenceDuplicateChargeDocumentation obj) : (Data.Aeson..=) "duplicate_charge_explanation" (disputeEvidenceDuplicateChargeExplanation obj) : (Data.Aeson..=) "duplicate_charge_id" (disputeEvidenceDuplicateChargeId obj) : (Data.Aeson..=) "product_description" (disputeEvidenceProductDescription obj) : (Data.Aeson..=) "receipt" (disputeEvidenceReceipt obj) : (Data.Aeson..=) "refund_policy" (disputeEvidenceRefundPolicy obj) : (Data.Aeson..=) "refund_policy_disclosure" (disputeEvidenceRefundPolicyDisclosure obj) : (Data.Aeson..=) "refund_refusal_explanation" (disputeEvidenceRefundRefusalExplanation obj) : (Data.Aeson..=) "service_date" (disputeEvidenceServiceDate obj) : (Data.Aeson..=) "service_documentation" (disputeEvidenceServiceDocumentation obj) : (Data.Aeson..=) "shipping_address" (disputeEvidenceShippingAddress obj) : (Data.Aeson..=) "shipping_carrier" (disputeEvidenceShippingCarrier obj) : (Data.Aeson..=) "shipping_date" (disputeEvidenceShippingDate obj) : (Data.Aeson..=) "shipping_documentation" (disputeEvidenceShippingDocumentation obj) : (Data.Aeson..=) "shipping_tracking_number" (disputeEvidenceShippingTrackingNumber obj) : (Data.Aeson..=) "uncategorized_file" (disputeEvidenceUncategorizedFile obj) : (Data.Aeson..=) "uncategorized_text" (disputeEvidenceUncategorizedText obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "access_activity_log" (disputeEvidenceAccessActivityLog obj) GHC.Base.<> ((Data.Aeson..=) "billing_address" (disputeEvidenceBillingAddress obj) GHC.Base.<> ((Data.Aeson..=) "cancellation_policy" (disputeEvidenceCancellationPolicy obj) GHC.Base.<> ((Data.Aeson..=) "cancellation_policy_disclosure" (disputeEvidenceCancellationPolicyDisclosure obj) GHC.Base.<> ((Data.Aeson..=) "cancellation_rebuttal" (disputeEvidenceCancellationRebuttal obj) GHC.Base.<> ((Data.Aeson..=) "customer_communication" (disputeEvidenceCustomerCommunication obj) GHC.Base.<> ((Data.Aeson..=) "customer_email_address" (disputeEvidenceCustomerEmailAddress obj) GHC.Base.<> ((Data.Aeson..=) "customer_name" (disputeEvidenceCustomerName obj) GHC.Base.<> ((Data.Aeson..=) "customer_purchase_ip" (disputeEvidenceCustomerPurchaseIp obj) GHC.Base.<> ((Data.Aeson..=) "customer_signature" (disputeEvidenceCustomerSignature obj) GHC.Base.<> ((Data.Aeson..=) "duplicate_charge_documentation" (disputeEvidenceDuplicateChargeDocumentation obj) GHC.Base.<> ((Data.Aeson..=) "duplicate_charge_explanation" (disputeEvidenceDuplicateChargeExplanation obj) GHC.Base.<> ((Data.Aeson..=) "duplicate_charge_id" (disputeEvidenceDuplicateChargeId obj) GHC.Base.<> ((Data.Aeson..=) "product_description" (disputeEvidenceProductDescription obj) GHC.Base.<> ((Data.Aeson..=) "receipt" (disputeEvidenceReceipt obj) GHC.Base.<> ((Data.Aeson..=) "refund_policy" (disputeEvidenceRefundPolicy obj) GHC.Base.<> ((Data.Aeson..=) "refund_policy_disclosure" (disputeEvidenceRefundPolicyDisclosure obj) GHC.Base.<> ((Data.Aeson..=) "refund_refusal_explanation" (disputeEvidenceRefundRefusalExplanation obj) GHC.Base.<> ((Data.Aeson..=) "service_date" (disputeEvidenceServiceDate obj) GHC.Base.<> ((Data.Aeson..=) "service_documentation" (disputeEvidenceServiceDocumentation obj) GHC.Base.<> ((Data.Aeson..=) "shipping_address" (disputeEvidenceShippingAddress obj) GHC.Base.<> ((Data.Aeson..=) "shipping_carrier" (disputeEvidenceShippingCarrier obj) GHC.Base.<> ((Data.Aeson..=) "shipping_date" (disputeEvidenceShippingDate obj) GHC.Base.<> ((Data.Aeson..=) "shipping_documentation" (disputeEvidenceShippingDocumentation obj) GHC.Base.<> ((Data.Aeson..=) "shipping_tracking_number" (disputeEvidenceShippingTrackingNumber obj) GHC.Base.<> ((Data.Aeson..=) "uncategorized_file" (disputeEvidenceUncategorizedFile obj) GHC.Base.<> (Data.Aeson..=) "uncategorized_text" (disputeEvidenceUncategorizedText obj)))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON DisputeEvidence
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "DisputeEvidence" (\obj -> ((((((((((((((((((((((((((GHC.Base.pure DisputeEvidence GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "access_activity_log")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cancellation_policy")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cancellation_policy_disclosure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cancellation_rebuttal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_communication")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_email_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_purchase_ip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_signature")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "duplicate_charge_documentation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "duplicate_charge_explanation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "duplicate_charge_id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "product_description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receipt")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "refund_policy")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "refund_policy_disclosure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "refund_refusal_explanation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "service_date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "service_documentation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping_carrier")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping_date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping_documentation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping_tracking_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncategorized_file")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncategorized_text"))
-- | Define the one-of schema dispute_evidenceCancellation_policy\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Your subscription cancellation policy, as shown to the customer.
data DisputeEvidenceCancellationPolicy'Variants
    = DisputeEvidenceCancellationPolicy'File File
    | DisputeEvidenceCancellationPolicy'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputeEvidenceCancellationPolicy'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputeEvidenceCancellationPolicy'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema dispute_evidenceCustomer_communication\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.
data DisputeEvidenceCustomerCommunication'Variants
    = DisputeEvidenceCustomerCommunication'File File
    | DisputeEvidenceCustomerCommunication'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputeEvidenceCustomerCommunication'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputeEvidenceCustomerCommunication'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema dispute_evidenceCustomer_signature\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) A relevant document or contract showing the customer\'s signature.
data DisputeEvidenceCustomerSignature'Variants
    = DisputeEvidenceCustomerSignature'File File
    | DisputeEvidenceCustomerSignature'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputeEvidenceCustomerSignature'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputeEvidenceCustomerSignature'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema dispute_evidenceDuplicate_charge_documentation\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.
data DisputeEvidenceDuplicateChargeDocumentation'Variants
    = DisputeEvidenceDuplicateChargeDocumentation'File File
    | DisputeEvidenceDuplicateChargeDocumentation'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputeEvidenceDuplicateChargeDocumentation'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputeEvidenceDuplicateChargeDocumentation'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema dispute_evidenceReceipt\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Any receipt or message sent to the customer notifying them of the charge.
data DisputeEvidenceReceipt'Variants
    = DisputeEvidenceReceipt'File File
    | DisputeEvidenceReceipt'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputeEvidenceReceipt'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputeEvidenceReceipt'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema dispute_evidenceRefund_policy\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Your refund policy, as shown to the customer.
data DisputeEvidenceRefundPolicy'Variants
    = DisputeEvidenceRefundPolicy'File File
    | DisputeEvidenceRefundPolicy'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputeEvidenceRefundPolicy'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputeEvidenceRefundPolicy'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema dispute_evidenceService_documentation\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.
data DisputeEvidenceServiceDocumentation'Variants
    = DisputeEvidenceServiceDocumentation'File File
    | DisputeEvidenceServiceDocumentation'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputeEvidenceServiceDocumentation'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputeEvidenceServiceDocumentation'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema dispute_evidenceShipping_documentation\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer\'s full shipping address, if possible.
data DisputeEvidenceShippingDocumentation'Variants
    = DisputeEvidenceShippingDocumentation'File File
    | DisputeEvidenceShippingDocumentation'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputeEvidenceShippingDocumentation'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputeEvidenceShippingDocumentation'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema dispute_evidenceUncategorized_file\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Any additional evidence or statements.
data DisputeEvidenceUncategorizedFile'Variants
    = DisputeEvidenceUncategorizedFile'File File
    | DisputeEvidenceUncategorizedFile'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON DisputeEvidenceUncategorizedFile'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON DisputeEvidenceUncategorizedFile'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema error
-- 
-- An error response from the Stripe API
data Error = Error {
  -- | error: 
  errorError :: ApiErrors
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Error
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "error" (errorError obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "error" (errorError obj))
instance Data.Aeson.Types.FromJSON.FromJSON Error
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Error" (\obj -> GHC.Base.pure Error GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "error"))
-- | Defines the data type for the schema event
-- 
-- Events are our way of letting you know when something interesting happens in
-- your account. When an interesting event occurs, we create a new \`Event\`
-- object. For example, when a charge succeeds, we create a \`charge.succeeded\`
-- event; and when an invoice payment attempt fails, we create an
-- \`invoice.payment_failed\` event. Note that many API requests may cause multiple
-- events to be created. For example, if you create a new subscription for a
-- customer, you will receive both a \`customer.subscription.created\` event and a
-- \`charge.succeeded\` event.
-- 
-- Events occur when the state of another API resource changes. The state of that
-- resource at the time of the change is embedded in the event\'s data field. For
-- example, a \`charge.succeeded\` event will contain a charge, and an
-- \`invoice.payment_failed\` event will contain an invoice.
-- 
-- As with other API resources, you can use endpoints to retrieve an
-- [individual event](https:\/\/stripe.com\/docs\/api\#retrieve_event) or a [list of events](https:\/\/stripe.com\/docs\/api\#list_events)
-- from the API. We also have a separate
-- [webhooks](http:\/\/en.wikipedia.org\/wiki\/Webhook) system for sending the
-- \`Event\` objects directly to an endpoint on your server. Webhooks are managed
-- in your
-- [account settings](https:\/\/dashboard.stripe.com\/account\/webhooks\'),
-- and our [Using Webhooks](https:\/\/stripe.com\/docs\/webhooks) guide will help you get set up.
-- 
-- When using [Connect](https:\/\/stripe.com\/docs\/connect), you can also receive notifications of
-- events that occur in connected accounts. For these events, there will be an
-- additional \`account\` attribute in the received \`Event\` object.
-- 
-- **NOTE:** Right now, access to events through the [Retrieve Event API](https:\/\/stripe.com\/docs\/api\#retrieve_event) is
-- guaranteed only for 30 days.
data Event = Event {
  -- | account: The connected account that originated the event.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  eventAccount :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | api_version: The Stripe API version used to render \`data\`. *Note: This property is populated only for events on or after October 31, 2014*.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , eventApiVersion :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , eventCreated :: GHC.Integer.Type.Integer
  -- | data: 
  , eventData :: NotificationEventData
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , eventId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , eventLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , eventObject :: EventObject'
  -- | pending_webhooks: Number of webhooks that have yet to be successfully delivered (i.e., to return a 20x response) to the URLs you\'ve specified.
  , eventPendingWebhooks :: GHC.Integer.Type.Integer
  -- | request: Information on the API request that instigated the event.
  , eventRequest :: (GHC.Maybe.Maybe EventRequest')
  -- | type: Description of the event (e.g., \`invoice.created\` or \`charge.refunded\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , eventType :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Event
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (eventAccount obj) : (Data.Aeson..=) "api_version" (eventApiVersion obj) : (Data.Aeson..=) "created" (eventCreated obj) : (Data.Aeson..=) "data" (eventData obj) : (Data.Aeson..=) "id" (eventId obj) : (Data.Aeson..=) "livemode" (eventLivemode obj) : (Data.Aeson..=) "object" (eventObject obj) : (Data.Aeson..=) "pending_webhooks" (eventPendingWebhooks obj) : (Data.Aeson..=) "request" (eventRequest obj) : (Data.Aeson..=) "type" (eventType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (eventAccount obj) GHC.Base.<> ((Data.Aeson..=) "api_version" (eventApiVersion obj) GHC.Base.<> ((Data.Aeson..=) "created" (eventCreated obj) GHC.Base.<> ((Data.Aeson..=) "data" (eventData obj) GHC.Base.<> ((Data.Aeson..=) "id" (eventId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (eventLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (eventObject obj) GHC.Base.<> ((Data.Aeson..=) "pending_webhooks" (eventPendingWebhooks obj) GHC.Base.<> ((Data.Aeson..=) "request" (eventRequest obj) GHC.Base.<> (Data.Aeson..=) "type" (eventType obj))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Event
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Event" (\obj -> (((((((((GHC.Base.pure Event GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "api_version")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "pending_webhooks")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "request")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Defines the enum schema eventObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data EventObject'
    = EventObject'EnumOther Data.Aeson.Types.Internal.Value
    | EventObject'EnumTyped GHC.Base.String
    | EventObject'EnumStringEvent
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON EventObject'
    where toJSON (EventObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (EventObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (EventObject'EnumStringEvent) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "event"
instance Data.Aeson.FromJSON EventObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "event")
                                          then EventObject'EnumStringEvent
                                          else EventObject'EnumOther val)
-- | Defines the data type for the schema eventRequest\'
-- 
-- Information on the API request that instigated the event.
data EventRequest' = EventRequest' {
  -- | id: ID of the API request that caused the event. If null, the event was automatic (e.g., Stripe\'s automatic subscription handling). Request logs are available in the [dashboard](https:\/\/dashboard.stripe.com\/logs), but currently not in the API.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  eventRequest'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | idempotency_key: The idempotency key transmitted during the request, if any. *Note: This property is populated only for events on or after May 23, 2017*.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , eventRequest'IdempotencyKey :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON EventRequest'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "id" (eventRequest'Id obj) : (Data.Aeson..=) "idempotency_key" (eventRequest'IdempotencyKey obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "id" (eventRequest'Id obj) GHC.Base.<> (Data.Aeson..=) "idempotency_key" (eventRequest'IdempotencyKey obj))
instance Data.Aeson.Types.FromJSON.FromJSON EventRequest'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "EventRequest'" (\obj -> (GHC.Base.pure EventRequest' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "idempotency_key"))
-- | Defines the data type for the schema external_account
-- 
-- 
data ExternalAccount = ExternalAccount {
  -- | account: The ID of the account that the bank account is associated with.
  externalAccountAccount :: (GHC.Maybe.Maybe ExternalAccountAccount'Variants)
  -- | account_holder_name: The name of the person or business that owns the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountAccountHolderName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountAccountHolderType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_city: City\/District\/Suburb\/Town\/Village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountAddressCity :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_country: Billing address country, if provided when creating card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountAddressCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountAddressLine1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountAddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountAddressLine2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_state: State\/County\/Province\/Region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountAddressState :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountAddressZip :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountAddressZipCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | available_payout_methods: A set of available payout methods for this card. Will be either \`[\"standard\"]\` or \`[\"standard\", \"instant\"]\`. Only values from this set should be passed as the \`method\` when creating a transfer.
  , externalAccountAvailablePayoutMethods :: (GHC.Maybe.Maybe ([] ExternalAccountAvailablePayoutMethods'))
  -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountBankName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountBrand :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter ISO code representing the country the bank account is located in.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  , externalAccountCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The ID of the customer that the bank account is associated with.
  , externalAccountCustomer :: (GHC.Maybe.Maybe ExternalAccountCustomer'Variants)
  -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountCvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_for_currency: Whether this bank account is the default external account for its currency.
  , externalAccountDefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountDynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , externalAccountExpMonth :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , externalAccountExpYear :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountFingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountFunding :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountId :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | last4: The last four digits of the bank account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , externalAccountMetadata :: (GHC.Maybe.Maybe ExternalAccountMetadata')
  -- | name: Cardholder name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , externalAccountObject :: (GHC.Maybe.Maybe ExternalAccountObject')
  -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
  , externalAccountRecipient :: (GHC.Maybe.Maybe ExternalAccountRecipient'Variants)
  -- | routing_number: The routing transit number for the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountRoutingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
  -- 
  -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountStatus :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`amex_express_checkout\`, \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , externalAccountTokenizationMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ExternalAccount
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (externalAccountAccount obj) : (Data.Aeson..=) "account_holder_name" (externalAccountAccountHolderName obj) : (Data.Aeson..=) "account_holder_type" (externalAccountAccountHolderType obj) : (Data.Aeson..=) "address_city" (externalAccountAddressCity obj) : (Data.Aeson..=) "address_country" (externalAccountAddressCountry obj) : (Data.Aeson..=) "address_line1" (externalAccountAddressLine1 obj) : (Data.Aeson..=) "address_line1_check" (externalAccountAddressLine1Check obj) : (Data.Aeson..=) "address_line2" (externalAccountAddressLine2 obj) : (Data.Aeson..=) "address_state" (externalAccountAddressState obj) : (Data.Aeson..=) "address_zip" (externalAccountAddressZip obj) : (Data.Aeson..=) "address_zip_check" (externalAccountAddressZipCheck obj) : (Data.Aeson..=) "available_payout_methods" (externalAccountAvailablePayoutMethods obj) : (Data.Aeson..=) "bank_name" (externalAccountBankName obj) : (Data.Aeson..=) "brand" (externalAccountBrand obj) : (Data.Aeson..=) "country" (externalAccountCountry obj) : (Data.Aeson..=) "currency" (externalAccountCurrency obj) : (Data.Aeson..=) "customer" (externalAccountCustomer obj) : (Data.Aeson..=) "cvc_check" (externalAccountCvcCheck obj) : (Data.Aeson..=) "default_for_currency" (externalAccountDefaultForCurrency obj) : (Data.Aeson..=) "dynamic_last4" (externalAccountDynamicLast4 obj) : (Data.Aeson..=) "exp_month" (externalAccountExpMonth obj) : (Data.Aeson..=) "exp_year" (externalAccountExpYear obj) : (Data.Aeson..=) "fingerprint" (externalAccountFingerprint obj) : (Data.Aeson..=) "funding" (externalAccountFunding obj) : (Data.Aeson..=) "id" (externalAccountId obj) : (Data.Aeson..=) "last4" (externalAccountLast4 obj) : (Data.Aeson..=) "metadata" (externalAccountMetadata obj) : (Data.Aeson..=) "name" (externalAccountName obj) : (Data.Aeson..=) "object" (externalAccountObject obj) : (Data.Aeson..=) "recipient" (externalAccountRecipient obj) : (Data.Aeson..=) "routing_number" (externalAccountRoutingNumber obj) : (Data.Aeson..=) "status" (externalAccountStatus obj) : (Data.Aeson..=) "tokenization_method" (externalAccountTokenizationMethod obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (externalAccountAccount obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_name" (externalAccountAccountHolderName obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_type" (externalAccountAccountHolderType obj) GHC.Base.<> ((Data.Aeson..=) "address_city" (externalAccountAddressCity obj) GHC.Base.<> ((Data.Aeson..=) "address_country" (externalAccountAddressCountry obj) GHC.Base.<> ((Data.Aeson..=) "address_line1" (externalAccountAddressLine1 obj) GHC.Base.<> ((Data.Aeson..=) "address_line1_check" (externalAccountAddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_line2" (externalAccountAddressLine2 obj) GHC.Base.<> ((Data.Aeson..=) "address_state" (externalAccountAddressState obj) GHC.Base.<> ((Data.Aeson..=) "address_zip" (externalAccountAddressZip obj) GHC.Base.<> ((Data.Aeson..=) "address_zip_check" (externalAccountAddressZipCheck obj) GHC.Base.<> ((Data.Aeson..=) "available_payout_methods" (externalAccountAvailablePayoutMethods obj) GHC.Base.<> ((Data.Aeson..=) "bank_name" (externalAccountBankName obj) GHC.Base.<> ((Data.Aeson..=) "brand" (externalAccountBrand obj) GHC.Base.<> ((Data.Aeson..=) "country" (externalAccountCountry obj) GHC.Base.<> ((Data.Aeson..=) "currency" (externalAccountCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (externalAccountCustomer obj) GHC.Base.<> ((Data.Aeson..=) "cvc_check" (externalAccountCvcCheck obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (externalAccountDefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (externalAccountDynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (externalAccountExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (externalAccountExpYear obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (externalAccountFingerprint obj) GHC.Base.<> ((Data.Aeson..=) "funding" (externalAccountFunding obj) GHC.Base.<> ((Data.Aeson..=) "id" (externalAccountId obj) GHC.Base.<> ((Data.Aeson..=) "last4" (externalAccountLast4 obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (externalAccountMetadata obj) GHC.Base.<> ((Data.Aeson..=) "name" (externalAccountName obj) GHC.Base.<> ((Data.Aeson..=) "object" (externalAccountObject obj) GHC.Base.<> ((Data.Aeson..=) "recipient" (externalAccountRecipient obj) GHC.Base.<> ((Data.Aeson..=) "routing_number" (externalAccountRoutingNumber obj) GHC.Base.<> ((Data.Aeson..=) "status" (externalAccountStatus obj) GHC.Base.<> (Data.Aeson..=) "tokenization_method" (externalAccountTokenizationMethod obj)))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON ExternalAccount
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ExternalAccount" (\obj -> ((((((((((((((((((((((((((((((((GHC.Base.pure ExternalAccount GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_payout_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "recipient")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tokenization_method"))
-- | Define the one-of schema external_accountAccount\'
-- 
-- The ID of the account that the bank account is associated with.
data ExternalAccountAccount'Variants
    = ExternalAccountAccount'Account Account
    | ExternalAccountAccount'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ExternalAccountAccount'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ExternalAccountAccount'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema external_accountAvailable_payout_methods\'
-- 
-- 
data ExternalAccountAvailablePayoutMethods'
    = ExternalAccountAvailablePayoutMethods'EnumOther Data.Aeson.Types.Internal.Value
    | ExternalAccountAvailablePayoutMethods'EnumTyped GHC.Base.String
    | ExternalAccountAvailablePayoutMethods'EnumStringInstant
    | ExternalAccountAvailablePayoutMethods'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ExternalAccountAvailablePayoutMethods'
    where toJSON (ExternalAccountAvailablePayoutMethods'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ExternalAccountAvailablePayoutMethods'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ExternalAccountAvailablePayoutMethods'EnumStringInstant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant"
          toJSON (ExternalAccountAvailablePayoutMethods'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON ExternalAccountAvailablePayoutMethods'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant")
                                          then ExternalAccountAvailablePayoutMethods'EnumStringInstant
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                then ExternalAccountAvailablePayoutMethods'EnumStringStandard
                                                else ExternalAccountAvailablePayoutMethods'EnumOther val)
-- | Define the one-of schema external_accountCustomer\'
-- 
-- The ID of the customer that the bank account is associated with.
data ExternalAccountCustomer'Variants
    = ExternalAccountCustomer'Customer Customer
    | ExternalAccountCustomer'DeletedCustomer DeletedCustomer
    | ExternalAccountCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ExternalAccountCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ExternalAccountCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema external_accountMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data ExternalAccountMetadata' = ExternalAccountMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ExternalAccountMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON ExternalAccountMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ExternalAccountMetadata'" (\obj -> GHC.Base.pure ExternalAccountMetadata')
-- | Defines the enum schema external_accountObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data ExternalAccountObject'
    = ExternalAccountObject'EnumOther Data.Aeson.Types.Internal.Value
    | ExternalAccountObject'EnumTyped GHC.Base.String
    | ExternalAccountObject'EnumStringBankAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ExternalAccountObject'
    where toJSON (ExternalAccountObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ExternalAccountObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ExternalAccountObject'EnumStringBankAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account"
instance Data.Aeson.FromJSON ExternalAccountObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account")
                                          then ExternalAccountObject'EnumStringBankAccount
                                          else ExternalAccountObject'EnumOther val)
-- | Define the one-of schema external_accountRecipient\'
-- 
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data ExternalAccountRecipient'Variants
    = ExternalAccountRecipient'Recipient Recipient
    | ExternalAccountRecipient'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ExternalAccountRecipient'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ExternalAccountRecipient'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema fee_refund
-- 
-- \`Application Fee Refund\` objects allow you to refund an application fee that
-- has previously been created but not yet refunded. Funds will be refunded to
-- the Stripe account from which the fee was originally collected.
-- 
-- Related guide: [Refunding Application Fees](https:\/\/stripe.com\/docs\/connect\/destination-charges\#refunding-app-fee).
data FeeRefund = FeeRefund {
  -- | amount: Amount, in %s.
  feeRefundAmount :: GHC.Integer.Type.Integer
  -- | balance_transaction: Balance transaction that describes the impact on your account balance.
  , feeRefundBalanceTransaction :: (GHC.Maybe.Maybe FeeRefundBalanceTransaction'Variants)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , feeRefundCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , feeRefundCurrency :: GHC.Base.String
  -- | fee: ID of the application fee that was refunded.
  , feeRefundFee :: FeeRefundFee'Variants
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , feeRefundId :: GHC.Base.String
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , feeRefundMetadata :: FeeRefundMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , feeRefundObject :: FeeRefundObject'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON FeeRefund
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (feeRefundAmount obj) : (Data.Aeson..=) "balance_transaction" (feeRefundBalanceTransaction obj) : (Data.Aeson..=) "created" (feeRefundCreated obj) : (Data.Aeson..=) "currency" (feeRefundCurrency obj) : (Data.Aeson..=) "fee" (feeRefundFee obj) : (Data.Aeson..=) "id" (feeRefundId obj) : (Data.Aeson..=) "metadata" (feeRefundMetadata obj) : (Data.Aeson..=) "object" (feeRefundObject obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (feeRefundAmount obj) GHC.Base.<> ((Data.Aeson..=) "balance_transaction" (feeRefundBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "created" (feeRefundCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (feeRefundCurrency obj) GHC.Base.<> ((Data.Aeson..=) "fee" (feeRefundFee obj) GHC.Base.<> ((Data.Aeson..=) "id" (feeRefundId obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (feeRefundMetadata obj) GHC.Base.<> (Data.Aeson..=) "object" (feeRefundObject obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON FeeRefund
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "FeeRefund" (\obj -> (((((((GHC.Base.pure FeeRefund GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "fee")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object"))
-- | Define the one-of schema fee_refundBalance_transaction\'
-- 
-- Balance transaction that describes the impact on your account balance.
data FeeRefundBalanceTransaction'Variants
    = FeeRefundBalanceTransaction'BalanceTransaction BalanceTransaction
    | FeeRefundBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON FeeRefundBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON FeeRefundBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema fee_refundFee\'
-- 
-- ID of the application fee that was refunded.
data FeeRefundFee'Variants
    = FeeRefundFee'ApplicationFee ApplicationFee
    | FeeRefundFee'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON FeeRefundFee'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON FeeRefundFee'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema fee_refundMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data FeeRefundMetadata' = FeeRefundMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON FeeRefundMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON FeeRefundMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "FeeRefundMetadata'" (\obj -> GHC.Base.pure FeeRefundMetadata')
-- | Defines the enum schema fee_refundObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data FeeRefundObject'
    = FeeRefundObject'EnumOther Data.Aeson.Types.Internal.Value
    | FeeRefundObject'EnumTyped GHC.Base.String
    | FeeRefundObject'EnumStringFeeRefund
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON FeeRefundObject'
    where toJSON (FeeRefundObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (FeeRefundObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (FeeRefundObject'EnumStringFeeRefund) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fee_refund"
instance Data.Aeson.FromJSON FeeRefundObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fee_refund")
                                          then FeeRefundObject'EnumStringFeeRefund
                                          else FeeRefundObject'EnumOther val)
-- | Defines the data type for the schema file
-- 
-- This is an object representing a file hosted on Stripe\'s servers. The
-- file may have been uploaded by yourself using the [create file](https:\/\/stripe.com\/docs\/api\#create_file)
-- request (for example, when uploading dispute evidence) or it may have
-- been created by Stripe (for example, the results of a [Sigma scheduled
-- query](\#scheduled_queries)).
-- 
-- Related guide: [File Upload Guide](https:\/\/stripe.com\/docs\/file-upload).
data File = File {
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  fileCreated :: GHC.Integer.Type.Integer
  -- | filename: A filename for the file, suitable for saving to a filesystem.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , fileFilename :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , fileId :: GHC.Base.String
  -- | links: A list of [file links](https:\/\/stripe.com\/docs\/api\#file_links) that point at this file.
  , fileLinks :: (GHC.Maybe.Maybe FileLinks')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , fileObject :: FileObject'
  -- | purpose: The purpose of the file. Possible values are \`additional_verification\`, \`business_icon\`, \`business_logo\`, \`customer_signature\`, \`dispute_evidence\`, \`finance_report_run\`, \`identity_document\`, \`pci_document\`, \`sigma_scheduled_query\`, or \`tax_document_user_upload\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , filePurpose :: GHC.Base.String
  -- | size: The size in bytes of the file object.
  , fileSize :: GHC.Integer.Type.Integer
  -- | title: A user friendly title for the document.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , fileTitle :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | type: The type of the file returned (e.g., \`csv\`, \`pdf\`, \`jpg\`, or \`png\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , fileType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | url: The URL from which the file can be downloaded using your live secret API key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , fileUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON File
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "created" (fileCreated obj) : (Data.Aeson..=) "filename" (fileFilename obj) : (Data.Aeson..=) "id" (fileId obj) : (Data.Aeson..=) "links" (fileLinks obj) : (Data.Aeson..=) "object" (fileObject obj) : (Data.Aeson..=) "purpose" (filePurpose obj) : (Data.Aeson..=) "size" (fileSize obj) : (Data.Aeson..=) "title" (fileTitle obj) : (Data.Aeson..=) "type" (fileType obj) : (Data.Aeson..=) "url" (fileUrl obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "created" (fileCreated obj) GHC.Base.<> ((Data.Aeson..=) "filename" (fileFilename obj) GHC.Base.<> ((Data.Aeson..=) "id" (fileId obj) GHC.Base.<> ((Data.Aeson..=) "links" (fileLinks obj) GHC.Base.<> ((Data.Aeson..=) "object" (fileObject obj) GHC.Base.<> ((Data.Aeson..=) "purpose" (filePurpose obj) GHC.Base.<> ((Data.Aeson..=) "size" (fileSize obj) GHC.Base.<> ((Data.Aeson..=) "title" (fileTitle obj) GHC.Base.<> ((Data.Aeson..=) "type" (fileType obj) GHC.Base.<> (Data.Aeson..=) "url" (fileUrl obj))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON File
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "File" (\obj -> (((((((((GHC.Base.pure File GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "filename")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "links")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "purpose")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "size")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "title")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "url"))
-- | Defines the data type for the schema fileLinks\'
-- 
-- A list of [file links](https:\/\/stripe.com\/docs\/api\#file_links) that point at this file.
data FileLinks' = FileLinks' {
  -- | data: Details about each object.
  fileLinks'Data :: ([] FileLink)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , fileLinks'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , fileLinks'Object :: FileLinks'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , fileLinks'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON FileLinks'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (fileLinks'Data obj) : (Data.Aeson..=) "has_more" (fileLinks'HasMore obj) : (Data.Aeson..=) "object" (fileLinks'Object obj) : (Data.Aeson..=) "url" (fileLinks'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (fileLinks'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (fileLinks'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (fileLinks'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (fileLinks'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON FileLinks'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "FileLinks'" (\obj -> (((GHC.Base.pure FileLinks' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema fileLinks\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data FileLinks'Object'
    = FileLinks'Object'EnumOther Data.Aeson.Types.Internal.Value
    | FileLinks'Object'EnumTyped GHC.Base.String
    | FileLinks'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON FileLinks'Object'
    where toJSON (FileLinks'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (FileLinks'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (FileLinks'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON FileLinks'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then FileLinks'Object'EnumStringList
                                          else FileLinks'Object'EnumOther val)
-- | Defines the enum schema fileObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data FileObject'
    = FileObject'EnumOther Data.Aeson.Types.Internal.Value
    | FileObject'EnumTyped GHC.Base.String
    | FileObject'EnumStringFile
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON FileObject'
    where toJSON (FileObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (FileObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (FileObject'EnumStringFile) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "file"
instance Data.Aeson.FromJSON FileObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "file")
                                          then FileObject'EnumStringFile
                                          else FileObject'EnumOther val)
-- | Defines the data type for the schema file_link
-- 
-- To share the contents of a \`File\` object with non-Stripe users, you can
-- create a \`FileLink\`. \`FileLink\`s contain a URL that can be used to
-- retrieve the contents of the file without authentication.
data FileLink = FileLink {
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  fileLinkCreated :: GHC.Integer.Type.Integer
  -- | expired: Whether this link is already expired.
  , fileLinkExpired :: GHC.Types.Bool
  -- | expires_at: Time at which the link expires.
  , fileLinkExpiresAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | file: The file object this link points to.
  , fileLinkFile :: FileLinkFile'Variants
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , fileLinkId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , fileLinkLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , fileLinkMetadata :: FileLinkMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , fileLinkObject :: FileLinkObject'
  -- | url: The publicly accessible URL to download the file.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , fileLinkUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON FileLink
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "created" (fileLinkCreated obj) : (Data.Aeson..=) "expired" (fileLinkExpired obj) : (Data.Aeson..=) "expires_at" (fileLinkExpiresAt obj) : (Data.Aeson..=) "file" (fileLinkFile obj) : (Data.Aeson..=) "id" (fileLinkId obj) : (Data.Aeson..=) "livemode" (fileLinkLivemode obj) : (Data.Aeson..=) "metadata" (fileLinkMetadata obj) : (Data.Aeson..=) "object" (fileLinkObject obj) : (Data.Aeson..=) "url" (fileLinkUrl obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "created" (fileLinkCreated obj) GHC.Base.<> ((Data.Aeson..=) "expired" (fileLinkExpired obj) GHC.Base.<> ((Data.Aeson..=) "expires_at" (fileLinkExpiresAt obj) GHC.Base.<> ((Data.Aeson..=) "file" (fileLinkFile obj) GHC.Base.<> ((Data.Aeson..=) "id" (fileLinkId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (fileLinkLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (fileLinkMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (fileLinkObject obj) GHC.Base.<> (Data.Aeson..=) "url" (fileLinkUrl obj)))))))))
instance Data.Aeson.Types.FromJSON.FromJSON FileLink
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "FileLink" (\obj -> ((((((((GHC.Base.pure FileLink GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "expired")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "expires_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "file")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "url"))
-- | Define the one-of schema file_linkFile\'
-- 
-- The file object this link points to.
data FileLinkFile'Variants
    = FileLinkFile'File File | FileLinkFile'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON FileLinkFile'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON FileLinkFile'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema file_linkMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data FileLinkMetadata' = FileLinkMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON FileLinkMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON FileLinkMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "FileLinkMetadata'" (\obj -> GHC.Base.pure FileLinkMetadata')
-- | Defines the enum schema file_linkObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data FileLinkObject'
    = FileLinkObject'EnumOther Data.Aeson.Types.Internal.Value
    | FileLinkObject'EnumTyped GHC.Base.String
    | FileLinkObject'EnumStringFileLink
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON FileLinkObject'
    where toJSON (FileLinkObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (FileLinkObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (FileLinkObject'EnumStringFileLink) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "file_link"
instance Data.Aeson.FromJSON FileLinkObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "file_link")
                                          then FileLinkObject'EnumStringFileLink
                                          else FileLinkObject'EnumOther val)
-- | Defines the data type for the schema invoice
-- 
-- Invoices are statements of amounts owed by a customer, and are either
-- generated one-off, or generated periodically from a subscription.
-- 
-- They contain [invoice items](https:\/\/stripe.com\/docs\/api\#invoiceitems), and proration adjustments
-- that may be caused by subscription upgrades\/downgrades (if necessary).
-- 
-- If your invoice is configured to be billed through automatic charges,
-- Stripe automatically finalizes your invoice and attempts payment. Note
-- that finalizing the invoice,
-- [when automatic](https:\/\/stripe.com\/docs\/billing\/invoices\/workflow\/\#auto_advance), does
-- not happen immediately as the invoice is created. Stripe waits
-- until one hour after the last webhook was successfully sent (or the last
-- webhook timed out after failing). If you (and the platforms you may have
-- connected to) have no webhooks configured, Stripe waits one hour after
-- creation to finalize the invoice.
-- 
-- If your invoice is configured to be billed by sending an email, then based on your
-- [email settings](https:\/\/dashboard.stripe.com\/account\/billing\/automatic\'),
-- Stripe will email the invoice to your customer and await payment. These
-- emails can contain a link to a hosted page to pay the invoice.
-- 
-- Stripe applies any customer credit on the account before determining the
-- amount due for the invoice (i.e., the amount that will be actually
-- charged). If the amount due for the invoice is less than Stripe\'s [minimum allowed charge
-- per currency](\/docs\/currencies\#minimum-and-maximum-charge-amounts), the
-- invoice is automatically marked paid, and we add the amount due to the
-- customer\'s running account balance which is applied to the next invoice.
-- 
-- More details on the customer\'s account balance are
-- [here](https:\/\/stripe.com\/docs\/api\/customers\/object\#customer_object-account_balance).
-- 
-- Related guide: [Send Invoices to Customers](https:\/\/stripe.com\/docs\/billing\/invoices\/sending).
data Invoice = Invoice {
  -- | account_country: The country of the business associated with this invoice, most often the business creating the invoice.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  invoiceAccountCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_name: The public name of the business associated with this invoice, most often the business creating the invoice.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceAccountName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | amount_due: Final amount due at this time for this invoice. If the invoice\'s total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the \`amount_due\` may be 0. If there is a positive \`starting_balance\` for the invoice (the customer owes money), the \`amount_due\` will also take that into account. The charge that gets generated for the invoice will be for the amount specified in \`amount_due\`.
  , invoiceAmountDue :: GHC.Integer.Type.Integer
  -- | amount_paid: The amount, in %s, that was paid.
  , invoiceAmountPaid :: GHC.Integer.Type.Integer
  -- | amount_remaining: The amount remaining, in %s, that is due.
  , invoiceAmountRemaining :: GHC.Integer.Type.Integer
  -- | application_fee_amount: The fee in %s that will be applied to the invoice and transferred to the application owner\'s Stripe account when the invoice is paid.
  , invoiceApplicationFeeAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | attempt_count: Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule.
  , invoiceAttemptCount :: GHC.Integer.Type.Integer
  -- | attempted: Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the \`invoice.created\` webhook, for example, so you might not want to display that invoice as unpaid to your users.
  , invoiceAttempted :: GHC.Types.Bool
  -- | auto_advance: Controls whether Stripe will perform [automatic collection](https:\/\/stripe.com\/docs\/billing\/invoices\/workflow\/\#auto_advance) of the invoice. When \`false\`, the invoice\'s state will not automatically advance without an explicit action.
  , invoiceAutoAdvance :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | billing_reason: Indicates the reason why the invoice was created. \`subscription_cycle\` indicates an invoice created by a subscription advancing into a new period. \`subscription_create\` indicates an invoice created due to creating a subscription. \`subscription_update\` indicates an invoice created due to updating a subscription. \`subscription\` is set for all old invoices to indicate either a change to a subscription or a period advancement. \`manual\` is set for all invoices unrelated to a subscription (for example: created via the invoice editor). The \`upcoming\` value is reserved for simulated invoices per the upcoming invoice endpoint. \`subscription_threshold\` indicates an invoice created due to a billing threshold being reached.
  , invoiceBillingReason :: (GHC.Maybe.Maybe InvoiceBillingReason')
  -- | charge: ID of the latest charge generated for this invoice, if any.
  , invoiceCharge :: (GHC.Maybe.Maybe InvoiceCharge'Variants)
  -- | collection_method: Either \`charge_automatically\`, or \`send_invoice\`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.
  , invoiceCollectionMethod :: (GHC.Maybe.Maybe InvoiceCollectionMethod')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , invoiceCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , invoiceCurrency :: GHC.Base.String
  -- | custom_fields: Custom fields displayed on the invoice.
  , invoiceCustomFields :: (GHC.Maybe.Maybe ([] InvoiceSettingCustomField))
  -- | customer: The ID of the customer who will be billed.
  , invoiceCustomer :: InvoiceCustomer'Variants
  -- | customer_address: The customer\'s address. Until the invoice is finalized, this field will equal \`customer.address\`. Once the invoice is finalized, this field will no longer be updated.
  , invoiceCustomerAddress :: (GHC.Maybe.Maybe InvoiceCustomerAddress')
  -- | customer_email: The customer\'s email. Until the invoice is finalized, this field will equal \`customer.email\`. Once the invoice is finalized, this field will no longer be updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceCustomerEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer_name: The customer\'s name. Until the invoice is finalized, this field will equal \`customer.name\`. Once the invoice is finalized, this field will no longer be updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceCustomerName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer_phone: The customer\'s phone number. Until the invoice is finalized, this field will equal \`customer.phone\`. Once the invoice is finalized, this field will no longer be updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceCustomerPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer_shipping: The customer\'s shipping information. Until the invoice is finalized, this field will equal \`customer.shipping\`. Once the invoice is finalized, this field will no longer be updated.
  , invoiceCustomerShipping :: (GHC.Maybe.Maybe InvoiceCustomerShipping')
  -- | customer_tax_exempt: The customer\'s tax exempt status. Until the invoice is finalized, this field will equal \`customer.tax_exempt\`. Once the invoice is finalized, this field will no longer be updated.
  , invoiceCustomerTaxExempt :: (GHC.Maybe.Maybe InvoiceCustomerTaxExempt')
  -- | customer_tax_ids: The customer\'s tax IDs. Until the invoice is finalized, this field will contain the same tax IDs as \`customer.tax_ids\`. Once the invoice is finalized, this field will no longer be updated.
  , invoiceCustomerTaxIds :: (GHC.Maybe.Maybe ([] InvoicesResourceInvoiceTaxId))
  -- | default_payment_method: ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription\'s default payment method, if any, or to the default payment method in the customer\'s invoice settings.
  , invoiceDefaultPaymentMethod :: (GHC.Maybe.Maybe InvoiceDefaultPaymentMethod'Variants)
  -- | default_source: ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription\'s default source, if any, or to the customer\'s default source.
  , invoiceDefaultSource :: (GHC.Maybe.Maybe InvoiceDefaultSource'Variants)
  -- | default_tax_rates: The tax rates applied to this invoice, if any.
  , invoiceDefaultTaxRates :: (GHC.Maybe.Maybe ([] TaxRate))
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users. Referenced as \'memo\' in the Dashboard.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | discount: Describes the current discount applied to this invoice, if there is one.
  , invoiceDiscount :: (GHC.Maybe.Maybe InvoiceDiscount')
  -- | due_date: The date on which payment for this invoice is due. This value will be \`null\` for invoices where \`collection_method=charge_automatically\`.
  , invoiceDueDate :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | ending_balance: Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null.
  , invoiceEndingBalance :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | footer: Footer displayed on the invoice.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceFooter :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | hosted_invoice_url: The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceHostedInvoiceUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceId :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | invoice_pdf: The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceInvoicePdf :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | lines: The individual line items that make up the invoice. \`lines\` is sorted as follows: invoice items in reverse chronological order, followed by the subscription, if any.
  , invoiceLines :: InvoiceLines'
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , invoiceLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , invoiceMetadata :: (GHC.Maybe.Maybe InvoiceMetadata')
  -- | next_payment_attempt: The time at which payment will next be attempted. This value will be \`null\` for invoices where \`collection_method=send_invoice\`.
  , invoiceNextPaymentAttempt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | number: A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer\'s unique invoice_prefix if it is specified.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , invoiceObject :: InvoiceObject'
  -- | paid: Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer\'s account balance.
  , invoicePaid :: GHC.Types.Bool
  -- | payment_intent: The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent.
  , invoicePaymentIntent :: (GHC.Maybe.Maybe InvoicePaymentIntent'Variants)
  -- | period_end: End of the usage period during which invoice items were added to this invoice.
  , invoicePeriodEnd :: GHC.Integer.Type.Integer
  -- | period_start: Start of the usage period during which invoice items were added to this invoice.
  , invoicePeriodStart :: GHC.Integer.Type.Integer
  -- | post_payment_credit_notes_amount: Total amount of all post-payment credit notes issued for this invoice.
  , invoicePostPaymentCreditNotesAmount :: GHC.Integer.Type.Integer
  -- | pre_payment_credit_notes_amount: Total amount of all pre-payment credit notes issued for this invoice.
  , invoicePrePaymentCreditNotesAmount :: GHC.Integer.Type.Integer
  -- | receipt_number: This is the transaction number that appears on email receipts sent for this invoice.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceReceiptNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | starting_balance: Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance.
  , invoiceStartingBalance :: GHC.Integer.Type.Integer
  -- | statement_descriptor: Extra information about an invoice for the customer\'s credit card statement.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceStatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: The status of the invoice, one of \`draft\`, \`open\`, \`paid\`, \`uncollectible\`, or \`void\`. [Learn more](https:\/\/stripe.com\/docs\/billing\/invoices\/workflow\#workflow-overview)
  , invoiceStatus :: (GHC.Maybe.Maybe InvoiceStatus')
  -- | status_transitions: 
  , invoiceStatusTransitions :: InvoicesStatusTransitions
  -- | subscription: The subscription that this invoice was prepared for, if any.
  , invoiceSubscription :: (GHC.Maybe.Maybe InvoiceSubscription'Variants)
  -- | subscription_proration_date: Only set for upcoming invoices that preview prorations. The time used to calculate prorations.
  , invoiceSubscriptionProrationDate :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | subtotal: Total of all subscriptions, invoice items, and prorations on the invoice before any discount or tax is applied.
  , invoiceSubtotal :: GHC.Integer.Type.Integer
  -- | tax: The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.
  , invoiceTax :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | tax_percent: This percentage of the subtotal has been added to the total amount of the invoice, including invoice line items and discounts. This field is inherited from the subscription\'s \`tax_percent\` field, but can be changed before the invoice is paid. This field defaults to null.
  , invoiceTaxPercent :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | threshold_reason: 
  , invoiceThresholdReason :: (GHC.Maybe.Maybe InvoiceThresholdReason)
  -- | total: Total after discounts and taxes.
  , invoiceTotal :: GHC.Integer.Type.Integer
  -- | total_tax_amounts: The aggregate amounts calculated per tax rate for all line items.
  , invoiceTotalTaxAmounts :: (GHC.Maybe.Maybe ([] InvoiceTaxAmount))
  -- | webhooks_delivered_at: The time at which webhooks for this invoice were successfully delivered (if the invoice had no webhooks to deliver, this will match \`created\`). Invoice payment is delayed until webhooks are delivered, or until all webhook delivery attempts have been exhausted.
  , invoiceWebhooksDeliveredAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Invoice
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account_country" (invoiceAccountCountry obj) : (Data.Aeson..=) "account_name" (invoiceAccountName obj) : (Data.Aeson..=) "amount_due" (invoiceAmountDue obj) : (Data.Aeson..=) "amount_paid" (invoiceAmountPaid obj) : (Data.Aeson..=) "amount_remaining" (invoiceAmountRemaining obj) : (Data.Aeson..=) "application_fee_amount" (invoiceApplicationFeeAmount obj) : (Data.Aeson..=) "attempt_count" (invoiceAttemptCount obj) : (Data.Aeson..=) "attempted" (invoiceAttempted obj) : (Data.Aeson..=) "auto_advance" (invoiceAutoAdvance obj) : (Data.Aeson..=) "billing_reason" (invoiceBillingReason obj) : (Data.Aeson..=) "charge" (invoiceCharge obj) : (Data.Aeson..=) "collection_method" (invoiceCollectionMethod obj) : (Data.Aeson..=) "created" (invoiceCreated obj) : (Data.Aeson..=) "currency" (invoiceCurrency obj) : (Data.Aeson..=) "custom_fields" (invoiceCustomFields obj) : (Data.Aeson..=) "customer" (invoiceCustomer obj) : (Data.Aeson..=) "customer_address" (invoiceCustomerAddress obj) : (Data.Aeson..=) "customer_email" (invoiceCustomerEmail obj) : (Data.Aeson..=) "customer_name" (invoiceCustomerName obj) : (Data.Aeson..=) "customer_phone" (invoiceCustomerPhone obj) : (Data.Aeson..=) "customer_shipping" (invoiceCustomerShipping obj) : (Data.Aeson..=) "customer_tax_exempt" (invoiceCustomerTaxExempt obj) : (Data.Aeson..=) "customer_tax_ids" (invoiceCustomerTaxIds obj) : (Data.Aeson..=) "default_payment_method" (invoiceDefaultPaymentMethod obj) : (Data.Aeson..=) "default_source" (invoiceDefaultSource obj) : (Data.Aeson..=) "default_tax_rates" (invoiceDefaultTaxRates obj) : (Data.Aeson..=) "description" (invoiceDescription obj) : (Data.Aeson..=) "discount" (invoiceDiscount obj) : (Data.Aeson..=) "due_date" (invoiceDueDate obj) : (Data.Aeson..=) "ending_balance" (invoiceEndingBalance obj) : (Data.Aeson..=) "footer" (invoiceFooter obj) : (Data.Aeson..=) "hosted_invoice_url" (invoiceHostedInvoiceUrl obj) : (Data.Aeson..=) "id" (invoiceId obj) : (Data.Aeson..=) "invoice_pdf" (invoiceInvoicePdf obj) : (Data.Aeson..=) "lines" (invoiceLines obj) : (Data.Aeson..=) "livemode" (invoiceLivemode obj) : (Data.Aeson..=) "metadata" (invoiceMetadata obj) : (Data.Aeson..=) "next_payment_attempt" (invoiceNextPaymentAttempt obj) : (Data.Aeson..=) "number" (invoiceNumber obj) : (Data.Aeson..=) "object" (invoiceObject obj) : (Data.Aeson..=) "paid" (invoicePaid obj) : (Data.Aeson..=) "payment_intent" (invoicePaymentIntent obj) : (Data.Aeson..=) "period_end" (invoicePeriodEnd obj) : (Data.Aeson..=) "period_start" (invoicePeriodStart obj) : (Data.Aeson..=) "post_payment_credit_notes_amount" (invoicePostPaymentCreditNotesAmount obj) : (Data.Aeson..=) "pre_payment_credit_notes_amount" (invoicePrePaymentCreditNotesAmount obj) : (Data.Aeson..=) "receipt_number" (invoiceReceiptNumber obj) : (Data.Aeson..=) "starting_balance" (invoiceStartingBalance obj) : (Data.Aeson..=) "statement_descriptor" (invoiceStatementDescriptor obj) : (Data.Aeson..=) "status" (invoiceStatus obj) : (Data.Aeson..=) "status_transitions" (invoiceStatusTransitions obj) : (Data.Aeson..=) "subscription" (invoiceSubscription obj) : (Data.Aeson..=) "subscription_proration_date" (invoiceSubscriptionProrationDate obj) : (Data.Aeson..=) "subtotal" (invoiceSubtotal obj) : (Data.Aeson..=) "tax" (invoiceTax obj) : (Data.Aeson..=) "tax_percent" (invoiceTaxPercent obj) : (Data.Aeson..=) "threshold_reason" (invoiceThresholdReason obj) : (Data.Aeson..=) "total" (invoiceTotal obj) : (Data.Aeson..=) "total_tax_amounts" (invoiceTotalTaxAmounts obj) : (Data.Aeson..=) "webhooks_delivered_at" (invoiceWebhooksDeliveredAt obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account_country" (invoiceAccountCountry obj) GHC.Base.<> ((Data.Aeson..=) "account_name" (invoiceAccountName obj) GHC.Base.<> ((Data.Aeson..=) "amount_due" (invoiceAmountDue obj) GHC.Base.<> ((Data.Aeson..=) "amount_paid" (invoiceAmountPaid obj) GHC.Base.<> ((Data.Aeson..=) "amount_remaining" (invoiceAmountRemaining obj) GHC.Base.<> ((Data.Aeson..=) "application_fee_amount" (invoiceApplicationFeeAmount obj) GHC.Base.<> ((Data.Aeson..=) "attempt_count" (invoiceAttemptCount obj) GHC.Base.<> ((Data.Aeson..=) "attempted" (invoiceAttempted obj) GHC.Base.<> ((Data.Aeson..=) "auto_advance" (invoiceAutoAdvance obj) GHC.Base.<> ((Data.Aeson..=) "billing_reason" (invoiceBillingReason obj) GHC.Base.<> ((Data.Aeson..=) "charge" (invoiceCharge obj) GHC.Base.<> ((Data.Aeson..=) "collection_method" (invoiceCollectionMethod obj) GHC.Base.<> ((Data.Aeson..=) "created" (invoiceCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (invoiceCurrency obj) GHC.Base.<> ((Data.Aeson..=) "custom_fields" (invoiceCustomFields obj) GHC.Base.<> ((Data.Aeson..=) "customer" (invoiceCustomer obj) GHC.Base.<> ((Data.Aeson..=) "customer_address" (invoiceCustomerAddress obj) GHC.Base.<> ((Data.Aeson..=) "customer_email" (invoiceCustomerEmail obj) GHC.Base.<> ((Data.Aeson..=) "customer_name" (invoiceCustomerName obj) GHC.Base.<> ((Data.Aeson..=) "customer_phone" (invoiceCustomerPhone obj) GHC.Base.<> ((Data.Aeson..=) "customer_shipping" (invoiceCustomerShipping obj) GHC.Base.<> ((Data.Aeson..=) "customer_tax_exempt" (invoiceCustomerTaxExempt obj) GHC.Base.<> ((Data.Aeson..=) "customer_tax_ids" (invoiceCustomerTaxIds obj) GHC.Base.<> ((Data.Aeson..=) "default_payment_method" (invoiceDefaultPaymentMethod obj) GHC.Base.<> ((Data.Aeson..=) "default_source" (invoiceDefaultSource obj) GHC.Base.<> ((Data.Aeson..=) "default_tax_rates" (invoiceDefaultTaxRates obj) GHC.Base.<> ((Data.Aeson..=) "description" (invoiceDescription obj) GHC.Base.<> ((Data.Aeson..=) "discount" (invoiceDiscount obj) GHC.Base.<> ((Data.Aeson..=) "due_date" (invoiceDueDate obj) GHC.Base.<> ((Data.Aeson..=) "ending_balance" (invoiceEndingBalance obj) GHC.Base.<> ((Data.Aeson..=) "footer" (invoiceFooter obj) GHC.Base.<> ((Data.Aeson..=) "hosted_invoice_url" (invoiceHostedInvoiceUrl obj) GHC.Base.<> ((Data.Aeson..=) "id" (invoiceId obj) GHC.Base.<> ((Data.Aeson..=) "invoice_pdf" (invoiceInvoicePdf obj) GHC.Base.<> ((Data.Aeson..=) "lines" (invoiceLines obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (invoiceLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (invoiceMetadata obj) GHC.Base.<> ((Data.Aeson..=) "next_payment_attempt" (invoiceNextPaymentAttempt obj) GHC.Base.<> ((Data.Aeson..=) "number" (invoiceNumber obj) GHC.Base.<> ((Data.Aeson..=) "object" (invoiceObject obj) GHC.Base.<> ((Data.Aeson..=) "paid" (invoicePaid obj) GHC.Base.<> ((Data.Aeson..=) "payment_intent" (invoicePaymentIntent obj) GHC.Base.<> ((Data.Aeson..=) "period_end" (invoicePeriodEnd obj) GHC.Base.<> ((Data.Aeson..=) "period_start" (invoicePeriodStart obj) GHC.Base.<> ((Data.Aeson..=) "post_payment_credit_notes_amount" (invoicePostPaymentCreditNotesAmount obj) GHC.Base.<> ((Data.Aeson..=) "pre_payment_credit_notes_amount" (invoicePrePaymentCreditNotesAmount obj) GHC.Base.<> ((Data.Aeson..=) "receipt_number" (invoiceReceiptNumber obj) GHC.Base.<> ((Data.Aeson..=) "starting_balance" (invoiceStartingBalance obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (invoiceStatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "status" (invoiceStatus obj) GHC.Base.<> ((Data.Aeson..=) "status_transitions" (invoiceStatusTransitions obj) GHC.Base.<> ((Data.Aeson..=) "subscription" (invoiceSubscription obj) GHC.Base.<> ((Data.Aeson..=) "subscription_proration_date" (invoiceSubscriptionProrationDate obj) GHC.Base.<> ((Data.Aeson..=) "subtotal" (invoiceSubtotal obj) GHC.Base.<> ((Data.Aeson..=) "tax" (invoiceTax obj) GHC.Base.<> ((Data.Aeson..=) "tax_percent" (invoiceTaxPercent obj) GHC.Base.<> ((Data.Aeson..=) "threshold_reason" (invoiceThresholdReason obj) GHC.Base.<> ((Data.Aeson..=) "total" (invoiceTotal obj) GHC.Base.<> ((Data.Aeson..=) "total_tax_amounts" (invoiceTotalTaxAmounts obj) GHC.Base.<> (Data.Aeson..=) "webhooks_delivered_at" (invoiceWebhooksDeliveredAt obj))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Invoice
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Invoice" (\obj -> (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((GHC.Base.pure Invoice GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount_due")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount_paid")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount_remaining")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application_fee_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "attempt_count")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "attempted")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "auto_advance")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "collection_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "custom_fields")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_shipping")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_tax_exempt")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_tax_ids")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_source")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_tax_rates")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "discount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "due_date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ending_balance")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "footer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "hosted_invoice_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice_pdf")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "lines")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "next_payment_attempt")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "paid")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "period_end")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "period_start")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "post_payment_credit_notes_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "pre_payment_credit_notes_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receipt_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "starting_balance")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status_transitions")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription_proration_date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "subtotal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_percent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "threshold_reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "total")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "total_tax_amounts")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "webhooks_delivered_at"))
-- | Defines the enum schema invoiceBilling_reason\'
-- 
-- Indicates the reason why the invoice was created. \`subscription_cycle\` indicates an invoice created by a subscription advancing into a new period. \`subscription_create\` indicates an invoice created due to creating a subscription. \`subscription_update\` indicates an invoice created due to updating a subscription. \`subscription\` is set for all old invoices to indicate either a change to a subscription or a period advancement. \`manual\` is set for all invoices unrelated to a subscription (for example: created via the invoice editor). The \`upcoming\` value is reserved for simulated invoices per the upcoming invoice endpoint. \`subscription_threshold\` indicates an invoice created due to a billing threshold being reached.
data InvoiceBillingReason'
    = InvoiceBillingReason'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceBillingReason'EnumTyped GHC.Base.String
    | InvoiceBillingReason'EnumStringAutomaticPendingInvoiceItemInvoice
    | InvoiceBillingReason'EnumStringManual
    | InvoiceBillingReason'EnumStringSubscription
    | InvoiceBillingReason'EnumStringSubscriptionCreate
    | InvoiceBillingReason'EnumStringSubscriptionCycle
    | InvoiceBillingReason'EnumStringSubscriptionThreshold
    | InvoiceBillingReason'EnumStringSubscriptionUpdate
    | InvoiceBillingReason'EnumStringUpcoming
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceBillingReason'
    where toJSON (InvoiceBillingReason'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceBillingReason'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceBillingReason'EnumStringAutomaticPendingInvoiceItemInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automatic_pending_invoice_item_invoice"
          toJSON (InvoiceBillingReason'EnumStringManual) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual"
          toJSON (InvoiceBillingReason'EnumStringSubscription) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription"
          toJSON (InvoiceBillingReason'EnumStringSubscriptionCreate) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_create"
          toJSON (InvoiceBillingReason'EnumStringSubscriptionCycle) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_cycle"
          toJSON (InvoiceBillingReason'EnumStringSubscriptionThreshold) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_threshold"
          toJSON (InvoiceBillingReason'EnumStringSubscriptionUpdate) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_update"
          toJSON (InvoiceBillingReason'EnumStringUpcoming) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "upcoming"
instance Data.Aeson.FromJSON InvoiceBillingReason'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automatic_pending_invoice_item_invoice")
                                          then InvoiceBillingReason'EnumStringAutomaticPendingInvoiceItemInvoice
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual")
                                                then InvoiceBillingReason'EnumStringManual
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription")
                                                      then InvoiceBillingReason'EnumStringSubscription
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_create")
                                                            then InvoiceBillingReason'EnumStringSubscriptionCreate
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_cycle")
                                                                  then InvoiceBillingReason'EnumStringSubscriptionCycle
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_threshold")
                                                                        then InvoiceBillingReason'EnumStringSubscriptionThreshold
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_update")
                                                                              then InvoiceBillingReason'EnumStringSubscriptionUpdate
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "upcoming")
                                                                                    then InvoiceBillingReason'EnumStringUpcoming
                                                                                    else InvoiceBillingReason'EnumOther val)
-- | Define the one-of schema invoiceCharge\'
-- 
-- ID of the latest charge generated for this invoice, if any.
data InvoiceCharge'Variants
    = InvoiceCharge'Charge Charge
    | InvoiceCharge'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceCharge'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceCharge'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema invoiceCollection_method\'
-- 
-- Either \`charge_automatically\`, or \`send_invoice\`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.
data InvoiceCollectionMethod'
    = InvoiceCollectionMethod'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceCollectionMethod'EnumTyped GHC.Base.String
    | InvoiceCollectionMethod'EnumStringChargeAutomatically
    | InvoiceCollectionMethod'EnumStringSendInvoice
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceCollectionMethod'
    where toJSON (InvoiceCollectionMethod'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceCollectionMethod'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceCollectionMethod'EnumStringChargeAutomatically) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge_automatically"
          toJSON (InvoiceCollectionMethod'EnumStringSendInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "send_invoice"
instance Data.Aeson.FromJSON InvoiceCollectionMethod'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge_automatically")
                                          then InvoiceCollectionMethod'EnumStringChargeAutomatically
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "send_invoice")
                                                then InvoiceCollectionMethod'EnumStringSendInvoice
                                                else InvoiceCollectionMethod'EnumOther val)
-- | Define the one-of schema invoiceCustomer\'
-- 
-- The ID of the customer who will be billed.
data InvoiceCustomer'Variants
    = InvoiceCustomer'Customer Customer
    | InvoiceCustomer'DeletedCustomer DeletedCustomer
    | InvoiceCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema invoiceCustomer_address\'
-- 
-- The customer\\\'s address. Until the invoice is finalized, this field will equal \\\`customer.address\\\`. Once the invoice is finalized, this field will no longer be updated.
data InvoiceCustomerAddress' = InvoiceCustomerAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  invoiceCustomerAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceCustomerAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceCustomerAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceCustomerAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceCustomerAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceCustomerAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceCustomerAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (invoiceCustomerAddress'City obj) : (Data.Aeson..=) "country" (invoiceCustomerAddress'Country obj) : (Data.Aeson..=) "line1" (invoiceCustomerAddress'Line1 obj) : (Data.Aeson..=) "line2" (invoiceCustomerAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (invoiceCustomerAddress'PostalCode obj) : (Data.Aeson..=) "state" (invoiceCustomerAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (invoiceCustomerAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (invoiceCustomerAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (invoiceCustomerAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (invoiceCustomerAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (invoiceCustomerAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (invoiceCustomerAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON InvoiceCustomerAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "InvoiceCustomerAddress'" (\obj -> (((((GHC.Base.pure InvoiceCustomerAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema invoiceCustomer_shipping\'
-- 
-- The customer\\\'s shipping information. Until the invoice is finalized, this field will equal \\\`customer.shipping\\\`. Once the invoice is finalized, this field will no longer be updated.
data InvoiceCustomerShipping' = InvoiceCustomerShipping' {
  -- | address: 
  invoiceCustomerShipping'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
  , invoiceCustomerShipping'Carrier :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Recipient name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceCustomerShipping'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Recipient phone (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceCustomerShipping'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | 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
  , invoiceCustomerShipping'TrackingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceCustomerShipping'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (invoiceCustomerShipping'Address obj) : (Data.Aeson..=) "carrier" (invoiceCustomerShipping'Carrier obj) : (Data.Aeson..=) "name" (invoiceCustomerShipping'Name obj) : (Data.Aeson..=) "phone" (invoiceCustomerShipping'Phone obj) : (Data.Aeson..=) "tracking_number" (invoiceCustomerShipping'TrackingNumber obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (invoiceCustomerShipping'Address obj) GHC.Base.<> ((Data.Aeson..=) "carrier" (invoiceCustomerShipping'Carrier obj) GHC.Base.<> ((Data.Aeson..=) "name" (invoiceCustomerShipping'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (invoiceCustomerShipping'Phone obj) GHC.Base.<> (Data.Aeson..=) "tracking_number" (invoiceCustomerShipping'TrackingNumber obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON InvoiceCustomerShipping'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "InvoiceCustomerShipping'" (\obj -> ((((GHC.Base.pure InvoiceCustomerShipping' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "carrier")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tracking_number"))
-- | Defines the enum schema invoiceCustomer_tax_exempt\'
-- 
-- The customer\'s tax exempt status. Until the invoice is finalized, this field will equal \`customer.tax_exempt\`. Once the invoice is finalized, this field will no longer be updated.
data InvoiceCustomerTaxExempt'
    = InvoiceCustomerTaxExempt'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceCustomerTaxExempt'EnumTyped GHC.Base.String
    | InvoiceCustomerTaxExempt'EnumStringExempt
    | InvoiceCustomerTaxExempt'EnumStringNone
    | InvoiceCustomerTaxExempt'EnumStringReverse
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceCustomerTaxExempt'
    where toJSON (InvoiceCustomerTaxExempt'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceCustomerTaxExempt'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceCustomerTaxExempt'EnumStringExempt) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exempt"
          toJSON (InvoiceCustomerTaxExempt'EnumStringNone) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "none"
          toJSON (InvoiceCustomerTaxExempt'EnumStringReverse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reverse"
instance Data.Aeson.FromJSON InvoiceCustomerTaxExempt'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exempt")
                                          then InvoiceCustomerTaxExempt'EnumStringExempt
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "none")
                                                then InvoiceCustomerTaxExempt'EnumStringNone
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reverse")
                                                      then InvoiceCustomerTaxExempt'EnumStringReverse
                                                      else InvoiceCustomerTaxExempt'EnumOther val)
-- | Define the one-of schema invoiceDefault_payment_method\'
-- 
-- ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription\'s default payment method, if any, or to the default payment method in the customer\'s invoice settings.
data InvoiceDefaultPaymentMethod'Variants
    = InvoiceDefaultPaymentMethod'PaymentMethod PaymentMethod
    | InvoiceDefaultPaymentMethod'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceDefaultPaymentMethod'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceDefaultPaymentMethod'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema invoiceDefault_source\'
-- 
-- ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription\'s default source, if any, or to the customer\'s default source.
data InvoiceDefaultSource'Variants
    = InvoiceDefaultSource'AlipayAccount AlipayAccount
    | InvoiceDefaultSource'BankAccount BankAccount
    | InvoiceDefaultSource'BitcoinReceiver BitcoinReceiver
    | InvoiceDefaultSource'Card Card
    | InvoiceDefaultSource'Source Source
    | InvoiceDefaultSource'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceDefaultSource'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceDefaultSource'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema invoiceDiscount\'
-- 
-- Describes the current discount applied to this invoice, if there is one.
data InvoiceDiscount' = InvoiceDiscount' {
  -- | coupon: A coupon contains information about a percent-off or amount-off discount you
  -- might want to apply to a customer. Coupons may be applied to [invoices](https:\/\/stripe.com\/docs\/api\#invoices) or
  -- [orders](https:\/\/stripe.com\/docs\/api\#create_order-coupon). Coupons do not work with conventional one-off [charges](https:\/\/stripe.com\/docs\/api\#create_charge).
  invoiceDiscount'Coupon :: (GHC.Maybe.Maybe Coupon)
  -- | customer: The ID of the customer associated with this discount.
  , invoiceDiscount'Customer :: (GHC.Maybe.Maybe InvoiceDiscount'Customer'Variants)
  -- | end: If the coupon has a duration of \`repeating\`, the date that this discount will end. If the coupon has a duration of \`once\` or \`forever\`, this attribute will be null.
  , invoiceDiscount'End :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , invoiceDiscount'Object :: (GHC.Maybe.Maybe InvoiceDiscount'Object')
  -- | start: Date that the coupon was applied.
  , invoiceDiscount'Start :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | subscription: The subscription that this coupon is applied to, if it is applied to a particular subscription.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceDiscount'Subscription :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceDiscount'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "coupon" (invoiceDiscount'Coupon obj) : (Data.Aeson..=) "customer" (invoiceDiscount'Customer obj) : (Data.Aeson..=) "end" (invoiceDiscount'End obj) : (Data.Aeson..=) "object" (invoiceDiscount'Object obj) : (Data.Aeson..=) "start" (invoiceDiscount'Start obj) : (Data.Aeson..=) "subscription" (invoiceDiscount'Subscription obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "coupon" (invoiceDiscount'Coupon obj) GHC.Base.<> ((Data.Aeson..=) "customer" (invoiceDiscount'Customer obj) GHC.Base.<> ((Data.Aeson..=) "end" (invoiceDiscount'End obj) GHC.Base.<> ((Data.Aeson..=) "object" (invoiceDiscount'Object obj) GHC.Base.<> ((Data.Aeson..=) "start" (invoiceDiscount'Start obj) GHC.Base.<> (Data.Aeson..=) "subscription" (invoiceDiscount'Subscription obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON InvoiceDiscount'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "InvoiceDiscount'" (\obj -> (((((GHC.Base.pure InvoiceDiscount' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "coupon")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "end")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "start")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription"))
-- | Define the one-of schema invoiceDiscount\'Customer\'
-- 
-- The ID of the customer associated with this discount.
data InvoiceDiscount'Customer'Variants
    = InvoiceDiscount'Customer'Customer Customer
    | InvoiceDiscount'Customer'DeletedCustomer DeletedCustomer
    | InvoiceDiscount'Customer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceDiscount'Customer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceDiscount'Customer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema invoiceDiscount\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data InvoiceDiscount'Object'
    = InvoiceDiscount'Object'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceDiscount'Object'EnumTyped GHC.Base.String
    | InvoiceDiscount'Object'EnumStringDiscount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceDiscount'Object'
    where toJSON (InvoiceDiscount'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceDiscount'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceDiscount'Object'EnumStringDiscount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount"
instance Data.Aeson.FromJSON InvoiceDiscount'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount")
                                          then InvoiceDiscount'Object'EnumStringDiscount
                                          else InvoiceDiscount'Object'EnumOther val)
-- | Defines the data type for the schema invoiceLines\'
-- 
-- The individual line items that make up the invoice. \`lines\` is sorted as follows: invoice items in reverse chronological order, followed by the subscription, if any.
data InvoiceLines' = InvoiceLines' {
  -- | data: Details about each object.
  invoiceLines'Data :: ([] LineItem)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , invoiceLines'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , invoiceLines'Object :: InvoiceLines'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceLines'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceLines'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (invoiceLines'Data obj) : (Data.Aeson..=) "has_more" (invoiceLines'HasMore obj) : (Data.Aeson..=) "object" (invoiceLines'Object obj) : (Data.Aeson..=) "url" (invoiceLines'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (invoiceLines'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (invoiceLines'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (invoiceLines'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (invoiceLines'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON InvoiceLines'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "InvoiceLines'" (\obj -> (((GHC.Base.pure InvoiceLines' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema invoiceLines\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data InvoiceLines'Object'
    = InvoiceLines'Object'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceLines'Object'EnumTyped GHC.Base.String
    | InvoiceLines'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceLines'Object'
    where toJSON (InvoiceLines'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceLines'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceLines'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON InvoiceLines'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then InvoiceLines'Object'EnumStringList
                                          else InvoiceLines'Object'EnumOther val)
-- | Defines the data type for the schema invoiceMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data InvoiceMetadata' = InvoiceMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON InvoiceMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "InvoiceMetadata'" (\obj -> GHC.Base.pure InvoiceMetadata')
-- | Defines the enum schema invoiceObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data InvoiceObject'
    = InvoiceObject'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceObject'EnumTyped GHC.Base.String
    | InvoiceObject'EnumStringInvoice
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceObject'
    where toJSON (InvoiceObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceObject'EnumStringInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invoice"
instance Data.Aeson.FromJSON InvoiceObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invoice")
                                          then InvoiceObject'EnumStringInvoice
                                          else InvoiceObject'EnumOther val)
-- | Define the one-of schema invoicePayment_intent\'
-- 
-- The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent.
data InvoicePaymentIntent'Variants
    = InvoicePaymentIntent'PaymentIntent PaymentIntent
    | InvoicePaymentIntent'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoicePaymentIntent'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoicePaymentIntent'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema invoiceStatus\'
-- 
-- The status of the invoice, one of \`draft\`, \`open\`, \`paid\`, \`uncollectible\`, or \`void\`. [Learn more](https:\/\/stripe.com\/docs\/billing\/invoices\/workflow\#workflow-overview)
data InvoiceStatus'
    = InvoiceStatus'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceStatus'EnumTyped GHC.Base.String
    | InvoiceStatus'EnumStringDeleted
    | InvoiceStatus'EnumStringDraft
    | InvoiceStatus'EnumStringOpen
    | InvoiceStatus'EnumStringPaid
    | InvoiceStatus'EnumStringUncollectible
    | InvoiceStatus'EnumStringVoid
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceStatus'
    where toJSON (InvoiceStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceStatus'EnumStringDeleted) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "deleted"
          toJSON (InvoiceStatus'EnumStringDraft) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "draft"
          toJSON (InvoiceStatus'EnumStringOpen) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "open"
          toJSON (InvoiceStatus'EnumStringPaid) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "paid"
          toJSON (InvoiceStatus'EnumStringUncollectible) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "uncollectible"
          toJSON (InvoiceStatus'EnumStringVoid) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "void"
instance Data.Aeson.FromJSON InvoiceStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "deleted")
                                          then InvoiceStatus'EnumStringDeleted
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "draft")
                                                then InvoiceStatus'EnumStringDraft
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "open")
                                                      then InvoiceStatus'EnumStringOpen
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "paid")
                                                            then InvoiceStatus'EnumStringPaid
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "uncollectible")
                                                                  then InvoiceStatus'EnumStringUncollectible
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "void")
                                                                        then InvoiceStatus'EnumStringVoid
                                                                        else InvoiceStatus'EnumOther val)
-- | Define the one-of schema invoiceSubscription\'
-- 
-- The subscription that this invoice was prepared for, if any.
data InvoiceSubscription'Variants
    = InvoiceSubscription'Subscription Subscription
    | InvoiceSubscription'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceSubscription'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceSubscription'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema invoice_setting_customer_setting
-- 
-- 
data InvoiceSettingCustomerSetting = InvoiceSettingCustomerSetting {
  -- | custom_fields: Default custom fields to be displayed on invoices for this customer.
  invoiceSettingCustomerSettingCustomFields :: (GHC.Maybe.Maybe ([] InvoiceSettingCustomField))
  -- | default_payment_method: ID of a payment method that\'s attached to the customer, to be used as the customer\'s default payment method for subscriptions and invoices.
  , invoiceSettingCustomerSettingDefaultPaymentMethod :: (GHC.Maybe.Maybe InvoiceSettingCustomerSettingDefaultPaymentMethod'Variants)
  -- | footer: Default footer to be displayed on invoices for this customer.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceSettingCustomerSettingFooter :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceSettingCustomerSetting
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "custom_fields" (invoiceSettingCustomerSettingCustomFields obj) : (Data.Aeson..=) "default_payment_method" (invoiceSettingCustomerSettingDefaultPaymentMethod obj) : (Data.Aeson..=) "footer" (invoiceSettingCustomerSettingFooter obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "custom_fields" (invoiceSettingCustomerSettingCustomFields obj) GHC.Base.<> ((Data.Aeson..=) "default_payment_method" (invoiceSettingCustomerSettingDefaultPaymentMethod obj) GHC.Base.<> (Data.Aeson..=) "footer" (invoiceSettingCustomerSettingFooter obj)))
instance Data.Aeson.Types.FromJSON.FromJSON InvoiceSettingCustomerSetting
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "InvoiceSettingCustomerSetting" (\obj -> ((GHC.Base.pure InvoiceSettingCustomerSetting GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "custom_fields")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "footer"))
-- | Define the one-of schema invoice_setting_customer_settingDefault_payment_method\'
-- 
-- ID of a payment method that\'s attached to the customer, to be used as the customer\'s default payment method for subscriptions and invoices.
data InvoiceSettingCustomerSettingDefaultPaymentMethod'Variants
    = InvoiceSettingCustomerSettingDefaultPaymentMethod'PaymentMethod PaymentMethod
    | InvoiceSettingCustomerSettingDefaultPaymentMethod'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceSettingCustomerSettingDefaultPaymentMethod'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceSettingCustomerSettingDefaultPaymentMethod'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema invoiceitem
-- 
-- Sometimes you want to add a charge or credit to a customer, but actually
-- charge or credit the customer\'s card only at the end of a regular billing
-- cycle. This is useful for combining several charges (to minimize
-- per-transaction fees), or for having Stripe tabulate your usage-based billing
-- totals.
-- 
-- Related guide: [Subscription Invoices](https:\/\/stripe.com\/docs\/billing\/invoices\/subscription\#adding-upcoming-invoice-items).
data Invoiceitem = Invoiceitem {
  -- | amount: Amount (in the \`currency\` specified) of the invoice item. This should always be equal to \`unit_amount * quantity\`.
  invoiceitemAmount :: GHC.Integer.Type.Integer
  -- | 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).
  , invoiceitemCurrency :: GHC.Base.String
  -- | customer: The ID of the customer who will be billed when this invoice item is billed.
  , invoiceitemCustomer :: InvoiceitemCustomer'Variants
  -- | date: Time at which the object was created. Measured in seconds since the Unix epoch.
  , invoiceitemDate :: GHC.Integer.Type.Integer
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceitemDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | discountable: If true, discounts will apply to this invoice item. Always false for prorations.
  , invoiceitemDiscountable :: GHC.Types.Bool
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceitemId :: GHC.Base.String
  -- | invoice: The ID of the invoice this invoice item belongs to.
  , invoiceitemInvoice :: (GHC.Maybe.Maybe InvoiceitemInvoice'Variants)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , invoiceitemLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , invoiceitemMetadata :: InvoiceitemMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , invoiceitemObject :: InvoiceitemObject'
  -- | period: 
  , invoiceitemPeriod :: InvoiceLineItemPeriod
  -- | plan: If the invoice item is a proration, the plan of the subscription that the proration was computed for.
  , invoiceitemPlan :: (GHC.Maybe.Maybe InvoiceitemPlan')
  -- | proration: Whether the invoice item was created automatically as a proration adjustment when the customer switched plans.
  , invoiceitemProration :: GHC.Types.Bool
  -- | quantity: Quantity of units for the invoice item. If the invoice item is a proration, the quantity of the subscription that the proration was computed for.
  , invoiceitemQuantity :: GHC.Integer.Type.Integer
  -- | subscription: The subscription that this invoice item has been created for, if any.
  , invoiceitemSubscription :: (GHC.Maybe.Maybe InvoiceitemSubscription'Variants)
  -- | subscription_item: The subscription item that this invoice item has been created for, if any.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceitemSubscriptionItem :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | tax_rates: The tax rates which apply to the invoice item. When set, the \`default_tax_rates\` on the invoice do not apply to this invoice item.
  , invoiceitemTaxRates :: (GHC.Maybe.Maybe ([] TaxRate))
  -- | unit_amount: Unit Amount (in the \`currency\` specified) of the invoice item.
  , invoiceitemUnitAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | unit_amount_decimal: Same as \`unit_amount\`, but contains a decimal value with at most 12 decimal places.
  , invoiceitemUnitAmountDecimal :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Invoiceitem
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (invoiceitemAmount obj) : (Data.Aeson..=) "currency" (invoiceitemCurrency obj) : (Data.Aeson..=) "customer" (invoiceitemCustomer obj) : (Data.Aeson..=) "date" (invoiceitemDate obj) : (Data.Aeson..=) "description" (invoiceitemDescription obj) : (Data.Aeson..=) "discountable" (invoiceitemDiscountable obj) : (Data.Aeson..=) "id" (invoiceitemId obj) : (Data.Aeson..=) "invoice" (invoiceitemInvoice obj) : (Data.Aeson..=) "livemode" (invoiceitemLivemode obj) : (Data.Aeson..=) "metadata" (invoiceitemMetadata obj) : (Data.Aeson..=) "object" (invoiceitemObject obj) : (Data.Aeson..=) "period" (invoiceitemPeriod obj) : (Data.Aeson..=) "plan" (invoiceitemPlan obj) : (Data.Aeson..=) "proration" (invoiceitemProration obj) : (Data.Aeson..=) "quantity" (invoiceitemQuantity obj) : (Data.Aeson..=) "subscription" (invoiceitemSubscription obj) : (Data.Aeson..=) "subscription_item" (invoiceitemSubscriptionItem obj) : (Data.Aeson..=) "tax_rates" (invoiceitemTaxRates obj) : (Data.Aeson..=) "unit_amount" (invoiceitemUnitAmount obj) : (Data.Aeson..=) "unit_amount_decimal" (invoiceitemUnitAmountDecimal obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (invoiceitemAmount obj) GHC.Base.<> ((Data.Aeson..=) "currency" (invoiceitemCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (invoiceitemCustomer obj) GHC.Base.<> ((Data.Aeson..=) "date" (invoiceitemDate obj) GHC.Base.<> ((Data.Aeson..=) "description" (invoiceitemDescription obj) GHC.Base.<> ((Data.Aeson..=) "discountable" (invoiceitemDiscountable obj) GHC.Base.<> ((Data.Aeson..=) "id" (invoiceitemId obj) GHC.Base.<> ((Data.Aeson..=) "invoice" (invoiceitemInvoice obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (invoiceitemLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (invoiceitemMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (invoiceitemObject obj) GHC.Base.<> ((Data.Aeson..=) "period" (invoiceitemPeriod obj) GHC.Base.<> ((Data.Aeson..=) "plan" (invoiceitemPlan obj) GHC.Base.<> ((Data.Aeson..=) "proration" (invoiceitemProration obj) GHC.Base.<> ((Data.Aeson..=) "quantity" (invoiceitemQuantity obj) GHC.Base.<> ((Data.Aeson..=) "subscription" (invoiceitemSubscription obj) GHC.Base.<> ((Data.Aeson..=) "subscription_item" (invoiceitemSubscriptionItem obj) GHC.Base.<> ((Data.Aeson..=) "tax_rates" (invoiceitemTaxRates obj) GHC.Base.<> ((Data.Aeson..=) "unit_amount" (invoiceitemUnitAmount obj) GHC.Base.<> (Data.Aeson..=) "unit_amount_decimal" (invoiceitemUnitAmountDecimal obj))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Invoiceitem
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Invoiceitem" (\obj -> (((((((((((((((((((GHC.Base.pure Invoiceitem GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "discountable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "period")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "plan")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "proration")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "quantity")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription_item")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_rates")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "unit_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "unit_amount_decimal"))
-- | Define the one-of schema invoiceitemCustomer\'
-- 
-- The ID of the customer who will be billed when this invoice item is billed.
data InvoiceitemCustomer'Variants
    = InvoiceitemCustomer'Customer Customer
    | InvoiceitemCustomer'DeletedCustomer DeletedCustomer
    | InvoiceitemCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceitemCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceitemCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema invoiceitemInvoice\'
-- 
-- The ID of the invoice this invoice item belongs to.
data InvoiceitemInvoice'Variants
    = InvoiceitemInvoice'Invoice Invoice
    | InvoiceitemInvoice'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceitemInvoice'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceitemInvoice'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema invoiceitemMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data InvoiceitemMetadata' = InvoiceitemMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON InvoiceitemMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "InvoiceitemMetadata'" (\obj -> GHC.Base.pure InvoiceitemMetadata')
-- | Defines the enum schema invoiceitemObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data InvoiceitemObject'
    = InvoiceitemObject'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceitemObject'EnumTyped GHC.Base.String
    | InvoiceitemObject'EnumStringInvoiceitem
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemObject'
    where toJSON (InvoiceitemObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemObject'EnumStringInvoiceitem) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invoiceitem"
instance Data.Aeson.FromJSON InvoiceitemObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invoiceitem")
                                          then InvoiceitemObject'EnumStringInvoiceitem
                                          else InvoiceitemObject'EnumOther val)
-- | Defines the data type for the schema invoiceitemPlan\'
-- 
-- If the invoice item is a proration, the plan of the subscription that the proration was computed for.
data InvoiceitemPlan' = InvoiceitemPlan' {
  -- | active: Whether the plan is currently available for new subscriptions.
  invoiceitemPlan'Active :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | aggregate_usage: Specifies a usage aggregation strategy for plans of \`usage_type=metered\`. Allowed values are \`sum\` for summing up all usage during a period, \`last_during_period\` for using the last usage record reported within a period, \`last_ever\` for using the last usage record ever (across period bounds) or \`max\` which uses the usage record with the maximum reported usage during a period. Defaults to \`sum\`.
  , invoiceitemPlan'AggregateUsage :: (GHC.Maybe.Maybe InvoiceitemPlan'AggregateUsage')
  -- | amount: The amount in %s to be charged on the interval specified.
  , invoiceitemPlan'Amount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | amount_decimal: Same as \`amount\`, but contains a decimal value with at most 12 decimal places.
  , invoiceitemPlan'AmountDecimal :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | billing_scheme: Describes how to compute the price per period. Either \`per_unit\` or \`tiered\`. \`per_unit\` indicates that the fixed amount (specified in \`amount\`) will be charged per unit in \`quantity\` (for plans with \`usage_type=licensed\`), or per unit of total usage (for plans with \`usage_type=metered\`). \`tiered\` indicates that the unit pricing will be computed using a tiering strategy as defined using the \`tiers\` and \`tiers_mode\` attributes.
  , invoiceitemPlan'BillingScheme :: (GHC.Maybe.Maybe InvoiceitemPlan'BillingScheme')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , invoiceitemPlan'Created :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | 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).
  , invoiceitemPlan'Currency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceitemPlan'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | interval: The frequency at which a subscription is billed. One of \`day\`, \`week\`, \`month\` or \`year\`.
  , invoiceitemPlan'Interval :: (GHC.Maybe.Maybe InvoiceitemPlan'Interval')
  -- | interval_count: The number of intervals (specified in the \`interval\` attribute) between subscription billings. For example, \`interval=month\` and \`interval_count=3\` bills every 3 months.
  , invoiceitemPlan'IntervalCount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , invoiceitemPlan'Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , invoiceitemPlan'Metadata :: (GHC.Maybe.Maybe InvoiceitemPlan'Metadata')
  -- | nickname: A brief description of the plan, hidden from customers.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , invoiceitemPlan'Nickname :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , invoiceitemPlan'Object :: (GHC.Maybe.Maybe InvoiceitemPlan'Object')
  -- | product: The product whose pricing this plan determines.
  , invoiceitemPlan'Product :: (GHC.Maybe.Maybe InvoiceitemPlan'Product'Variants)
  -- | tiers: Each element represents a pricing tier. This parameter requires \`billing_scheme\` to be set to \`tiered\`. See also the documentation for \`billing_scheme\`.
  , invoiceitemPlan'Tiers :: (GHC.Maybe.Maybe ([] PlanTier))
  -- | tiers_mode: Defines if the tiering price should be \`graduated\` or \`volume\` based. In \`volume\`-based tiering, the maximum quantity within a period determines the per unit price. In \`graduated\` tiering, pricing can change as the quantity grows.
  , invoiceitemPlan'TiersMode :: (GHC.Maybe.Maybe InvoiceitemPlan'TiersMode')
  -- | transform_usage: Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with \`tiers\`.
  , invoiceitemPlan'TransformUsage :: (GHC.Maybe.Maybe InvoiceitemPlan'TransformUsage')
  -- | trial_period_days: Default number of trial days when subscribing a customer to this plan using [\`trial_from_plan=true\`](https:\/\/stripe.com\/docs\/api\#create_subscription-trial_from_plan).
  , invoiceitemPlan'TrialPeriodDays :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | usage_type: Configures how the quantity per period should be determined. Can be either \`metered\` or \`licensed\`. \`licensed\` automatically bills the \`quantity\` set when adding it to a subscription. \`metered\` aggregates the total usage based on usage records. Defaults to \`licensed\`.
  , invoiceitemPlan'UsageType :: (GHC.Maybe.Maybe InvoiceitemPlan'UsageType')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemPlan'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "active" (invoiceitemPlan'Active obj) : (Data.Aeson..=) "aggregate_usage" (invoiceitemPlan'AggregateUsage obj) : (Data.Aeson..=) "amount" (invoiceitemPlan'Amount obj) : (Data.Aeson..=) "amount_decimal" (invoiceitemPlan'AmountDecimal obj) : (Data.Aeson..=) "billing_scheme" (invoiceitemPlan'BillingScheme obj) : (Data.Aeson..=) "created" (invoiceitemPlan'Created obj) : (Data.Aeson..=) "currency" (invoiceitemPlan'Currency obj) : (Data.Aeson..=) "id" (invoiceitemPlan'Id obj) : (Data.Aeson..=) "interval" (invoiceitemPlan'Interval obj) : (Data.Aeson..=) "interval_count" (invoiceitemPlan'IntervalCount obj) : (Data.Aeson..=) "livemode" (invoiceitemPlan'Livemode obj) : (Data.Aeson..=) "metadata" (invoiceitemPlan'Metadata obj) : (Data.Aeson..=) "nickname" (invoiceitemPlan'Nickname obj) : (Data.Aeson..=) "object" (invoiceitemPlan'Object obj) : (Data.Aeson..=) "product" (invoiceitemPlan'Product obj) : (Data.Aeson..=) "tiers" (invoiceitemPlan'Tiers obj) : (Data.Aeson..=) "tiers_mode" (invoiceitemPlan'TiersMode obj) : (Data.Aeson..=) "transform_usage" (invoiceitemPlan'TransformUsage obj) : (Data.Aeson..=) "trial_period_days" (invoiceitemPlan'TrialPeriodDays obj) : (Data.Aeson..=) "usage_type" (invoiceitemPlan'UsageType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "active" (invoiceitemPlan'Active obj) GHC.Base.<> ((Data.Aeson..=) "aggregate_usage" (invoiceitemPlan'AggregateUsage obj) GHC.Base.<> ((Data.Aeson..=) "amount" (invoiceitemPlan'Amount obj) GHC.Base.<> ((Data.Aeson..=) "amount_decimal" (invoiceitemPlan'AmountDecimal obj) GHC.Base.<> ((Data.Aeson..=) "billing_scheme" (invoiceitemPlan'BillingScheme obj) GHC.Base.<> ((Data.Aeson..=) "created" (invoiceitemPlan'Created obj) GHC.Base.<> ((Data.Aeson..=) "currency" (invoiceitemPlan'Currency obj) GHC.Base.<> ((Data.Aeson..=) "id" (invoiceitemPlan'Id obj) GHC.Base.<> ((Data.Aeson..=) "interval" (invoiceitemPlan'Interval obj) GHC.Base.<> ((Data.Aeson..=) "interval_count" (invoiceitemPlan'IntervalCount obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (invoiceitemPlan'Livemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (invoiceitemPlan'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "nickname" (invoiceitemPlan'Nickname obj) GHC.Base.<> ((Data.Aeson..=) "object" (invoiceitemPlan'Object obj) GHC.Base.<> ((Data.Aeson..=) "product" (invoiceitemPlan'Product obj) GHC.Base.<> ((Data.Aeson..=) "tiers" (invoiceitemPlan'Tiers obj) GHC.Base.<> ((Data.Aeson..=) "tiers_mode" (invoiceitemPlan'TiersMode obj) GHC.Base.<> ((Data.Aeson..=) "transform_usage" (invoiceitemPlan'TransformUsage obj) GHC.Base.<> ((Data.Aeson..=) "trial_period_days" (invoiceitemPlan'TrialPeriodDays obj) GHC.Base.<> (Data.Aeson..=) "usage_type" (invoiceitemPlan'UsageType obj))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON InvoiceitemPlan'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "InvoiceitemPlan'" (\obj -> (((((((((((((((((((GHC.Base.pure InvoiceitemPlan' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "active")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "aggregate_usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_decimal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_scheme")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval_count")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "nickname")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "product")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tiers")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tiers_mode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transform_usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_period_days")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage_type"))
-- | Defines the enum schema invoiceitemPlan\'Aggregate_usage\'
-- 
-- Specifies a usage aggregation strategy for plans of \`usage_type=metered\`. Allowed values are \`sum\` for summing up all usage during a period, \`last_during_period\` for using the last usage record reported within a period, \`last_ever\` for using the last usage record ever (across period bounds) or \`max\` which uses the usage record with the maximum reported usage during a period. Defaults to \`sum\`.
data InvoiceitemPlan'AggregateUsage'
    = InvoiceitemPlan'AggregateUsage'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceitemPlan'AggregateUsage'EnumTyped GHC.Base.String
    | InvoiceitemPlan'AggregateUsage'EnumStringLastDuringPeriod
    | InvoiceitemPlan'AggregateUsage'EnumStringLastEver
    | InvoiceitemPlan'AggregateUsage'EnumStringMax
    | InvoiceitemPlan'AggregateUsage'EnumStringSum
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemPlan'AggregateUsage'
    where toJSON (InvoiceitemPlan'AggregateUsage'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'AggregateUsage'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'AggregateUsage'EnumStringLastDuringPeriod) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_during_period"
          toJSON (InvoiceitemPlan'AggregateUsage'EnumStringLastEver) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_ever"
          toJSON (InvoiceitemPlan'AggregateUsage'EnumStringMax) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "max"
          toJSON (InvoiceitemPlan'AggregateUsage'EnumStringSum) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sum"
instance Data.Aeson.FromJSON InvoiceitemPlan'AggregateUsage'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_during_period")
                                          then InvoiceitemPlan'AggregateUsage'EnumStringLastDuringPeriod
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_ever")
                                                then InvoiceitemPlan'AggregateUsage'EnumStringLastEver
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "max")
                                                      then InvoiceitemPlan'AggregateUsage'EnumStringMax
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sum")
                                                            then InvoiceitemPlan'AggregateUsage'EnumStringSum
                                                            else InvoiceitemPlan'AggregateUsage'EnumOther val)
-- | Defines the enum schema invoiceitemPlan\'Billing_scheme\'
-- 
-- Describes how to compute the price per period. Either \`per_unit\` or \`tiered\`. \`per_unit\` indicates that the fixed amount (specified in \`amount\`) will be charged per unit in \`quantity\` (for plans with \`usage_type=licensed\`), or per unit of total usage (for plans with \`usage_type=metered\`). \`tiered\` indicates that the unit pricing will be computed using a tiering strategy as defined using the \`tiers\` and \`tiers_mode\` attributes.
data InvoiceitemPlan'BillingScheme'
    = InvoiceitemPlan'BillingScheme'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceitemPlan'BillingScheme'EnumTyped GHC.Base.String
    | InvoiceitemPlan'BillingScheme'EnumStringPerUnit
    | InvoiceitemPlan'BillingScheme'EnumStringTiered
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemPlan'BillingScheme'
    where toJSON (InvoiceitemPlan'BillingScheme'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'BillingScheme'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'BillingScheme'EnumStringPerUnit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "per_unit"
          toJSON (InvoiceitemPlan'BillingScheme'EnumStringTiered) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tiered"
instance Data.Aeson.FromJSON InvoiceitemPlan'BillingScheme'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "per_unit")
                                          then InvoiceitemPlan'BillingScheme'EnumStringPerUnit
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tiered")
                                                then InvoiceitemPlan'BillingScheme'EnumStringTiered
                                                else InvoiceitemPlan'BillingScheme'EnumOther val)
-- | Defines the enum schema invoiceitemPlan\'Interval\'
-- 
-- The frequency at which a subscription is billed. One of \`day\`, \`week\`, \`month\` or \`year\`.
data InvoiceitemPlan'Interval'
    = InvoiceitemPlan'Interval'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceitemPlan'Interval'EnumTyped GHC.Base.String
    | InvoiceitemPlan'Interval'EnumStringDay
    | InvoiceitemPlan'Interval'EnumStringMonth
    | InvoiceitemPlan'Interval'EnumStringWeek
    | InvoiceitemPlan'Interval'EnumStringYear
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemPlan'Interval'
    where toJSON (InvoiceitemPlan'Interval'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'Interval'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'Interval'EnumStringDay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "day"
          toJSON (InvoiceitemPlan'Interval'EnumStringMonth) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month"
          toJSON (InvoiceitemPlan'Interval'EnumStringWeek) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "week"
          toJSON (InvoiceitemPlan'Interval'EnumStringYear) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "year"
instance Data.Aeson.FromJSON InvoiceitemPlan'Interval'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "day")
                                          then InvoiceitemPlan'Interval'EnumStringDay
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month")
                                                then InvoiceitemPlan'Interval'EnumStringMonth
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "week")
                                                      then InvoiceitemPlan'Interval'EnumStringWeek
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "year")
                                                            then InvoiceitemPlan'Interval'EnumStringYear
                                                            else InvoiceitemPlan'Interval'EnumOther val)
-- | Defines the data type for the schema invoiceitemPlan\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data InvoiceitemPlan'Metadata' = InvoiceitemPlan'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemPlan'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON InvoiceitemPlan'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "InvoiceitemPlan'Metadata'" (\obj -> GHC.Base.pure InvoiceitemPlan'Metadata')
-- | Defines the enum schema invoiceitemPlan\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data InvoiceitemPlan'Object'
    = InvoiceitemPlan'Object'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceitemPlan'Object'EnumTyped GHC.Base.String
    | InvoiceitemPlan'Object'EnumStringPlan
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemPlan'Object'
    where toJSON (InvoiceitemPlan'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'Object'EnumStringPlan) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plan"
instance Data.Aeson.FromJSON InvoiceitemPlan'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plan")
                                          then InvoiceitemPlan'Object'EnumStringPlan
                                          else InvoiceitemPlan'Object'EnumOther val)
-- | Define the one-of schema invoiceitemPlan\'Product\'
-- 
-- The product whose pricing this plan determines.
data InvoiceitemPlan'Product'Variants
    = InvoiceitemPlan'Product'DeletedProduct DeletedProduct
    | InvoiceitemPlan'Product'Product Product
    | InvoiceitemPlan'Product'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceitemPlan'Product'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceitemPlan'Product'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema invoiceitemPlan\'Tiers_mode\'
-- 
-- Defines if the tiering price should be \`graduated\` or \`volume\` based. In \`volume\`-based tiering, the maximum quantity within a period determines the per unit price. In \`graduated\` tiering, pricing can change as the quantity grows.
data InvoiceitemPlan'TiersMode'
    = InvoiceitemPlan'TiersMode'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceitemPlan'TiersMode'EnumTyped GHC.Base.String
    | InvoiceitemPlan'TiersMode'EnumStringGraduated
    | InvoiceitemPlan'TiersMode'EnumStringVolume
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemPlan'TiersMode'
    where toJSON (InvoiceitemPlan'TiersMode'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'TiersMode'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'TiersMode'EnumStringGraduated) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "graduated"
          toJSON (InvoiceitemPlan'TiersMode'EnumStringVolume) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "volume"
instance Data.Aeson.FromJSON InvoiceitemPlan'TiersMode'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "graduated")
                                          then InvoiceitemPlan'TiersMode'EnumStringGraduated
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "volume")
                                                then InvoiceitemPlan'TiersMode'EnumStringVolume
                                                else InvoiceitemPlan'TiersMode'EnumOther val)
-- | Defines the data type for the schema invoiceitemPlan\'Transform_usage\'
-- 
-- Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with \\\`tiers\\\`.
data InvoiceitemPlan'TransformUsage' = InvoiceitemPlan'TransformUsage' {
  -- | divide_by: Divide usage by this number.
  invoiceitemPlan'TransformUsage'DivideBy :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | round: After division, either round the result \`up\` or \`down\`.
  , invoiceitemPlan'TransformUsage'Round :: (GHC.Maybe.Maybe InvoiceitemPlan'TransformUsage'Round')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemPlan'TransformUsage'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "divide_by" (invoiceitemPlan'TransformUsage'DivideBy obj) : (Data.Aeson..=) "round" (invoiceitemPlan'TransformUsage'Round obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "divide_by" (invoiceitemPlan'TransformUsage'DivideBy obj) GHC.Base.<> (Data.Aeson..=) "round" (invoiceitemPlan'TransformUsage'Round obj))
instance Data.Aeson.Types.FromJSON.FromJSON InvoiceitemPlan'TransformUsage'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "InvoiceitemPlan'TransformUsage'" (\obj -> (GHC.Base.pure InvoiceitemPlan'TransformUsage' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "divide_by")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "round"))
-- | Defines the enum schema invoiceitemPlan\'Transform_usage\'Round\'
-- 
-- After division, either round the result \`up\` or \`down\`.
data InvoiceitemPlan'TransformUsage'Round'
    = InvoiceitemPlan'TransformUsage'Round'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceitemPlan'TransformUsage'Round'EnumTyped GHC.Base.String
    | InvoiceitemPlan'TransformUsage'Round'EnumStringDown
    | InvoiceitemPlan'TransformUsage'Round'EnumStringUp
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemPlan'TransformUsage'Round'
    where toJSON (InvoiceitemPlan'TransformUsage'Round'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'TransformUsage'Round'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'TransformUsage'Round'EnumStringDown) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "down"
          toJSON (InvoiceitemPlan'TransformUsage'Round'EnumStringUp) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "up"
instance Data.Aeson.FromJSON InvoiceitemPlan'TransformUsage'Round'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "down")
                                          then InvoiceitemPlan'TransformUsage'Round'EnumStringDown
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "up")
                                                then InvoiceitemPlan'TransformUsage'Round'EnumStringUp
                                                else InvoiceitemPlan'TransformUsage'Round'EnumOther val)
-- | Defines the enum schema invoiceitemPlan\'Usage_type\'
-- 
-- Configures how the quantity per period should be determined. Can be either \`metered\` or \`licensed\`. \`licensed\` automatically bills the \`quantity\` set when adding it to a subscription. \`metered\` aggregates the total usage based on usage records. Defaults to \`licensed\`.
data InvoiceitemPlan'UsageType'
    = InvoiceitemPlan'UsageType'EnumOther Data.Aeson.Types.Internal.Value
    | InvoiceitemPlan'UsageType'EnumTyped GHC.Base.String
    | InvoiceitemPlan'UsageType'EnumStringLicensed
    | InvoiceitemPlan'UsageType'EnumStringMetered
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON InvoiceitemPlan'UsageType'
    where toJSON (InvoiceitemPlan'UsageType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'UsageType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (InvoiceitemPlan'UsageType'EnumStringLicensed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "licensed"
          toJSON (InvoiceitemPlan'UsageType'EnumStringMetered) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metered"
instance Data.Aeson.FromJSON InvoiceitemPlan'UsageType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "licensed")
                                          then InvoiceitemPlan'UsageType'EnumStringLicensed
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metered")
                                                then InvoiceitemPlan'UsageType'EnumStringMetered
                                                else InvoiceitemPlan'UsageType'EnumOther val)
-- | Define the one-of schema invoiceitemSubscription\'
-- 
-- The subscription that this invoice item has been created for, if any.
data InvoiceitemSubscription'Variants
    = InvoiceitemSubscription'Subscription Subscription
    | InvoiceitemSubscription'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON InvoiceitemSubscription'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON InvoiceitemSubscription'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuer_fraud_record
-- 
-- This resource has been renamed to [Early Fraud
-- Warning](\#early_fraud_warning_object) and will be removed in a future API
-- version.
data IssuerFraudRecord = IssuerFraudRecord {
  -- | actionable: An IFR is actionable if it has not received a dispute and has not been fully refunded. You may wish to proactively refund a charge that receives an IFR, in order to avoid receiving a dispute later.
  issuerFraudRecordActionable :: GHC.Types.Bool
  -- | charge: ID of the charge this issuer fraud record is for, optionally expanded.
  , issuerFraudRecordCharge :: IssuerFraudRecordCharge'Variants
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , issuerFraudRecordCreated :: GHC.Integer.Type.Integer
  -- | fraud_type: The type of fraud labelled by the issuer. One of \`card_never_received\`, \`fraudulent_card_application\`, \`made_with_counterfeit_card\`, \`made_with_lost_card\`, \`made_with_stolen_card\`, \`misc\`, \`unauthorized_use_of_card\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuerFraudRecordFraudType :: GHC.Base.String
  -- | has_liability_shift: If true, the associated charge is subject to [liability shift](https:\/\/stripe.com\/docs\/sources\/three-d-secure\#disputed-payments).
  , issuerFraudRecordHasLiabilityShift :: GHC.Types.Bool
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuerFraudRecordId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , issuerFraudRecordLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , issuerFraudRecordObject :: IssuerFraudRecordObject'
  -- | post_date: The timestamp at which the card issuer posted the issuer fraud record.
  , issuerFraudRecordPostDate :: GHC.Integer.Type.Integer
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuerFraudRecord
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "actionable" (issuerFraudRecordActionable obj) : (Data.Aeson..=) "charge" (issuerFraudRecordCharge obj) : (Data.Aeson..=) "created" (issuerFraudRecordCreated obj) : (Data.Aeson..=) "fraud_type" (issuerFraudRecordFraudType obj) : (Data.Aeson..=) "has_liability_shift" (issuerFraudRecordHasLiabilityShift obj) : (Data.Aeson..=) "id" (issuerFraudRecordId obj) : (Data.Aeson..=) "livemode" (issuerFraudRecordLivemode obj) : (Data.Aeson..=) "object" (issuerFraudRecordObject obj) : (Data.Aeson..=) "post_date" (issuerFraudRecordPostDate obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "actionable" (issuerFraudRecordActionable obj) GHC.Base.<> ((Data.Aeson..=) "charge" (issuerFraudRecordCharge obj) GHC.Base.<> ((Data.Aeson..=) "created" (issuerFraudRecordCreated obj) GHC.Base.<> ((Data.Aeson..=) "fraud_type" (issuerFraudRecordFraudType obj) GHC.Base.<> ((Data.Aeson..=) "has_liability_shift" (issuerFraudRecordHasLiabilityShift obj) GHC.Base.<> ((Data.Aeson..=) "id" (issuerFraudRecordId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (issuerFraudRecordLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (issuerFraudRecordObject obj) GHC.Base.<> (Data.Aeson..=) "post_date" (issuerFraudRecordPostDate obj)))))))))
instance Data.Aeson.Types.FromJSON.FromJSON IssuerFraudRecord
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuerFraudRecord" (\obj -> ((((((((GHC.Base.pure IssuerFraudRecord GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "actionable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "fraud_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_liability_shift")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "post_date"))
-- | Define the one-of schema issuer_fraud_recordCharge\'
-- 
-- ID of the charge this issuer fraud record is for, optionally expanded.
data IssuerFraudRecordCharge'Variants
    = IssuerFraudRecordCharge'Charge Charge
    | IssuerFraudRecordCharge'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuerFraudRecordCharge'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuerFraudRecordCharge'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema issuer_fraud_recordObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data IssuerFraudRecordObject'
    = IssuerFraudRecordObject'EnumOther Data.Aeson.Types.Internal.Value
    | IssuerFraudRecordObject'EnumTyped GHC.Base.String
    | IssuerFraudRecordObject'EnumStringIssuerFraudRecord
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuerFraudRecordObject'
    where toJSON (IssuerFraudRecordObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (IssuerFraudRecordObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (IssuerFraudRecordObject'EnumStringIssuerFraudRecord) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuer_fraud_record"
instance Data.Aeson.FromJSON IssuerFraudRecordObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuer_fraud_record")
                                          then IssuerFraudRecordObject'EnumStringIssuerFraudRecord
                                          else IssuerFraudRecordObject'EnumOther val)
-- | Defines the data type for the schema issuing.authorization
-- 
-- When an [issued card](https:\/\/stripe.com\/docs\/issuing) is used to make a purchase, an Issuing \`Authorization\`
-- object is created. [Authorizations](https:\/\/stripe.com\/docs\/issuing\/authorizations) must be approved for the
-- purchase to be completed successfully.
-- 
-- Related guide: [Issued Card Authorizations](https:\/\/stripe.com\/docs\/issuing\/authorizations).
data Issuing'authorization = Issuing'authorization {
  -- | approved: Whether the authorization has been approved.
  issuing'authorizationApproved :: GHC.Types.Bool
  -- | authorization_method: How the card details were provided.
  , issuing'authorizationAuthorizationMethod :: Issuing'authorizationAuthorizationMethod'
  -- | authorized_amount: The amount that has been authorized. This will be \`0\` when the object is created, and increase after it has been approved.
  , issuing'authorizationAuthorizedAmount :: GHC.Integer.Type.Integer
  -- | authorized_currency: The currency that was presented to the cardholder for the authorization. Three-letter [ISO currency code](https:\/\/www.iso.org\/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https:\/\/stripe.com\/docs\/currencies).
  , issuing'authorizationAuthorizedCurrency :: GHC.Base.String
  -- | balance_transactions: List of balance transactions associated with this authorization.
  , issuing'authorizationBalanceTransactions :: ([] BalanceTransaction)
  -- | card: You can [create physical or virtual cards](https:\/\/stripe.com\/docs\/issuing\/cards) that are issued to cardholders.
  , issuing'authorizationCard :: Issuing'card
  -- | cardholder: The cardholder to whom this authorization belongs.
  , issuing'authorizationCardholder :: (GHC.Maybe.Maybe Issuing'authorizationCardholder'Variants)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , issuing'authorizationCreated :: GHC.Integer.Type.Integer
  -- | held_amount: The amount the authorization is expected to be in \`held_currency\`. When Stripe holds funds from you, this is the amount reserved for the authorization. This will be \`0\` when the object is created, and increase after it has been approved. For multi-currency transactions, \`held_amount\` can be used to determine the expected exchange rate.
  , issuing'authorizationHeldAmount :: GHC.Integer.Type.Integer
  -- | held_currency: The currency of the [held amount](https:\/\/stripe.com\/docs\/api\#issuing_authorization_object-held_amount). This will always be the card currency.
  , issuing'authorizationHeldCurrency :: GHC.Base.String
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'authorizationId :: GHC.Base.String
  -- | is_held_amount_controllable: If set \`true\`, you may provide [held_amount](https:\/\/stripe.com\/docs\/api\/issuing\/authorizations\/approve\#approve_issuing_authorization-held_amount) to control how much to hold for the authorization.
  , issuing'authorizationIsHeldAmountControllable :: GHC.Types.Bool
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , issuing'authorizationLivemode :: GHC.Types.Bool
  -- | merchant_data: 
  , issuing'authorizationMerchantData :: IssuingAuthorizationMerchantData
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , issuing'authorizationMetadata :: Issuing'authorizationMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , issuing'authorizationObject :: Issuing'authorizationObject'
  -- | pending_authorized_amount: The amount the user is requesting to be authorized. This field will only be non-zero during an \`issuing.authorization.request\` webhook.
  , issuing'authorizationPendingAuthorizedAmount :: GHC.Integer.Type.Integer
  -- | pending_held_amount: The additional amount Stripe will hold if the authorization is approved. This field will only be non-zero during an \`issuing.authorization.request\` webhook.
  , issuing'authorizationPendingHeldAmount :: GHC.Integer.Type.Integer
  -- | request_history: History of every time the authorization was approved\/denied (whether approved\/denied by you directly, or by Stripe based on your authorization_controls). If the merchant changes the authorization by performing an [incremental authorization or partial capture](https:\/\/stripe.com\/docs\/issuing\/authorizations\/special_scenarios\#incremental-authorizations), you can look at request_history to see the previous states of the authorization.
  , issuing'authorizationRequestHistory :: ([] IssuingAuthorizationRequest)
  -- | status: The current status of the authorization in its lifecycle.
  , issuing'authorizationStatus :: Issuing'authorizationStatus'
  -- | transactions: List of [transactions](https:\/\/stripe.com\/docs\/api\/issuing\/transactions) associated with this authorization.
  , issuing'authorizationTransactions :: ([] Issuing'transaction)
  -- | verification_data: 
  , issuing'authorizationVerificationData :: IssuingAuthorizationVerificationData
  -- | wallet_provider: What, if any, digital wallet was used for this authorization. One of \`apple_pay\`, \`google_pay\`, or \`samsung_pay\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'authorizationWalletProvider :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'authorization
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "approved" (issuing'authorizationApproved obj) : (Data.Aeson..=) "authorization_method" (issuing'authorizationAuthorizationMethod obj) : (Data.Aeson..=) "authorized_amount" (issuing'authorizationAuthorizedAmount obj) : (Data.Aeson..=) "authorized_currency" (issuing'authorizationAuthorizedCurrency obj) : (Data.Aeson..=) "balance_transactions" (issuing'authorizationBalanceTransactions obj) : (Data.Aeson..=) "card" (issuing'authorizationCard obj) : (Data.Aeson..=) "cardholder" (issuing'authorizationCardholder obj) : (Data.Aeson..=) "created" (issuing'authorizationCreated obj) : (Data.Aeson..=) "held_amount" (issuing'authorizationHeldAmount obj) : (Data.Aeson..=) "held_currency" (issuing'authorizationHeldCurrency obj) : (Data.Aeson..=) "id" (issuing'authorizationId obj) : (Data.Aeson..=) "is_held_amount_controllable" (issuing'authorizationIsHeldAmountControllable obj) : (Data.Aeson..=) "livemode" (issuing'authorizationLivemode obj) : (Data.Aeson..=) "merchant_data" (issuing'authorizationMerchantData obj) : (Data.Aeson..=) "metadata" (issuing'authorizationMetadata obj) : (Data.Aeson..=) "object" (issuing'authorizationObject obj) : (Data.Aeson..=) "pending_authorized_amount" (issuing'authorizationPendingAuthorizedAmount obj) : (Data.Aeson..=) "pending_held_amount" (issuing'authorizationPendingHeldAmount obj) : (Data.Aeson..=) "request_history" (issuing'authorizationRequestHistory obj) : (Data.Aeson..=) "status" (issuing'authorizationStatus obj) : (Data.Aeson..=) "transactions" (issuing'authorizationTransactions obj) : (Data.Aeson..=) "verification_data" (issuing'authorizationVerificationData obj) : (Data.Aeson..=) "wallet_provider" (issuing'authorizationWalletProvider obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "approved" (issuing'authorizationApproved obj) GHC.Base.<> ((Data.Aeson..=) "authorization_method" (issuing'authorizationAuthorizationMethod obj) GHC.Base.<> ((Data.Aeson..=) "authorized_amount" (issuing'authorizationAuthorizedAmount obj) GHC.Base.<> ((Data.Aeson..=) "authorized_currency" (issuing'authorizationAuthorizedCurrency obj) GHC.Base.<> ((Data.Aeson..=) "balance_transactions" (issuing'authorizationBalanceTransactions obj) GHC.Base.<> ((Data.Aeson..=) "card" (issuing'authorizationCard obj) GHC.Base.<> ((Data.Aeson..=) "cardholder" (issuing'authorizationCardholder obj) GHC.Base.<> ((Data.Aeson..=) "created" (issuing'authorizationCreated obj) GHC.Base.<> ((Data.Aeson..=) "held_amount" (issuing'authorizationHeldAmount obj) GHC.Base.<> ((Data.Aeson..=) "held_currency" (issuing'authorizationHeldCurrency obj) GHC.Base.<> ((Data.Aeson..=) "id" (issuing'authorizationId obj) GHC.Base.<> ((Data.Aeson..=) "is_held_amount_controllable" (issuing'authorizationIsHeldAmountControllable obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (issuing'authorizationLivemode obj) GHC.Base.<> ((Data.Aeson..=) "merchant_data" (issuing'authorizationMerchantData obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (issuing'authorizationMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (issuing'authorizationObject obj) GHC.Base.<> ((Data.Aeson..=) "pending_authorized_amount" (issuing'authorizationPendingAuthorizedAmount obj) GHC.Base.<> ((Data.Aeson..=) "pending_held_amount" (issuing'authorizationPendingHeldAmount obj) GHC.Base.<> ((Data.Aeson..=) "request_history" (issuing'authorizationRequestHistory obj) GHC.Base.<> ((Data.Aeson..=) "status" (issuing'authorizationStatus obj) GHC.Base.<> ((Data.Aeson..=) "transactions" (issuing'authorizationTransactions obj) GHC.Base.<> ((Data.Aeson..=) "verification_data" (issuing'authorizationVerificationData obj) GHC.Base.<> (Data.Aeson..=) "wallet_provider" (issuing'authorizationWalletProvider obj)))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'authorization
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'authorization" (\obj -> ((((((((((((((((((((((GHC.Base.pure Issuing'authorization GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "approved")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "authorization_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "authorized_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "authorized_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "balance_transactions")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cardholder")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "held_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "held_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "is_held_amount_controllable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "merchant_data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "pending_authorized_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "pending_held_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "request_history")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "transactions")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "verification_data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wallet_provider"))
-- | Defines the enum schema issuing.authorizationAuthorization_method\'
-- 
-- How the card details were provided.
data Issuing'authorizationAuthorizationMethod'
    = Issuing'authorizationAuthorizationMethod'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'authorizationAuthorizationMethod'EnumTyped GHC.Base.String
    | Issuing'authorizationAuthorizationMethod'EnumStringChip
    | Issuing'authorizationAuthorizationMethod'EnumStringContactless
    | Issuing'authorizationAuthorizationMethod'EnumStringKeyedIn
    | Issuing'authorizationAuthorizationMethod'EnumStringOnline
    | Issuing'authorizationAuthorizationMethod'EnumStringSwipe
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'authorizationAuthorizationMethod'
    where toJSON (Issuing'authorizationAuthorizationMethod'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'authorizationAuthorizationMethod'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'authorizationAuthorizationMethod'EnumStringChip) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chip"
          toJSON (Issuing'authorizationAuthorizationMethod'EnumStringContactless) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "contactless"
          toJSON (Issuing'authorizationAuthorizationMethod'EnumStringKeyedIn) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "keyed_in"
          toJSON (Issuing'authorizationAuthorizationMethod'EnumStringOnline) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "online"
          toJSON (Issuing'authorizationAuthorizationMethod'EnumStringSwipe) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "swipe"
instance Data.Aeson.FromJSON Issuing'authorizationAuthorizationMethod'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chip")
                                          then Issuing'authorizationAuthorizationMethod'EnumStringChip
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "contactless")
                                                then Issuing'authorizationAuthorizationMethod'EnumStringContactless
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "keyed_in")
                                                      then Issuing'authorizationAuthorizationMethod'EnumStringKeyedIn
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "online")
                                                            then Issuing'authorizationAuthorizationMethod'EnumStringOnline
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "swipe")
                                                                  then Issuing'authorizationAuthorizationMethod'EnumStringSwipe
                                                                  else Issuing'authorizationAuthorizationMethod'EnumOther val)
-- | Define the one-of schema issuing.authorizationCardholder\'
-- 
-- The cardholder to whom this authorization belongs.
data Issuing'authorizationCardholder'Variants
    = Issuing'authorizationCardholder'Issuing'cardholder Issuing'cardholder
    | Issuing'authorizationCardholder'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'authorizationCardholder'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'authorizationCardholder'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing.authorizationMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data Issuing'authorizationMetadata' = Issuing'authorizationMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'authorizationMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'authorizationMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'authorizationMetadata'" (\obj -> GHC.Base.pure Issuing'authorizationMetadata')
-- | Defines the enum schema issuing.authorizationObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Issuing'authorizationObject'
    = Issuing'authorizationObject'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'authorizationObject'EnumTyped GHC.Base.String
    | Issuing'authorizationObject'EnumStringIssuing'authorization
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'authorizationObject'
    where toJSON (Issuing'authorizationObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'authorizationObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'authorizationObject'EnumStringIssuing'authorization) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.authorization"
instance Data.Aeson.FromJSON Issuing'authorizationObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.authorization")
                                          then Issuing'authorizationObject'EnumStringIssuing'authorization
                                          else Issuing'authorizationObject'EnumOther val)
-- | Defines the enum schema issuing.authorizationStatus\'
-- 
-- The current status of the authorization in its lifecycle.
data Issuing'authorizationStatus'
    = Issuing'authorizationStatus'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'authorizationStatus'EnumTyped GHC.Base.String
    | Issuing'authorizationStatus'EnumStringClosed
    | Issuing'authorizationStatus'EnumStringPending
    | Issuing'authorizationStatus'EnumStringReversed
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'authorizationStatus'
    where toJSON (Issuing'authorizationStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'authorizationStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'authorizationStatus'EnumStringClosed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "closed"
          toJSON (Issuing'authorizationStatus'EnumStringPending) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pending"
          toJSON (Issuing'authorizationStatus'EnumStringReversed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reversed"
instance Data.Aeson.FromJSON Issuing'authorizationStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "closed")
                                          then Issuing'authorizationStatus'EnumStringClosed
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pending")
                                                then Issuing'authorizationStatus'EnumStringPending
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reversed")
                                                      then Issuing'authorizationStatus'EnumStringReversed
                                                      else Issuing'authorizationStatus'EnumOther val)
-- | Defines the data type for the schema issuing.card
-- 
-- You can [create physical or virtual cards](https:\/\/stripe.com\/docs\/issuing\/cards) that are issued to cardholders.
data Issuing'card = Issuing'card {
  -- | authorization_controls: 
  issuing'cardAuthorizationControls :: IssuingCardAuthorizationControls
  -- | brand: The brand of the card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardBrand :: GHC.Base.String
  -- | cardholder: The [Cardholder](https:\/\/stripe.com\/docs\/api\#issuing_cardholder_object) object to which the card belongs.
  , issuing'cardCardholder :: (GHC.Maybe.Maybe Issuing'cardCardholder')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , issuing'cardCreated :: GHC.Integer.Type.Integer
  -- | currency: Three-letter [ISO currency code](https:\/\/www.iso.org\/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https:\/\/stripe.com\/docs\/currencies).
  , issuing'cardCurrency :: GHC.Base.String
  -- | exp_month: The expiration month of the card.
  , issuing'cardExpMonth :: GHC.Integer.Type.Integer
  -- | exp_year: The expiration year of the card.
  , issuing'cardExpYear :: GHC.Integer.Type.Integer
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardId :: GHC.Base.String
  -- | last4: The last 4 digits of the card number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardLast4 :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , issuing'cardLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , issuing'cardMetadata :: Issuing'cardMetadata'
  -- | name: The name of the cardholder, printed on the card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardName :: GHC.Base.String
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , issuing'cardObject :: Issuing'cardObject'
  -- | pin: Metadata about the PIN on the card.
  , issuing'cardPin :: (GHC.Maybe.Maybe Issuing'cardPin')
  -- | replacement_for: The card this card replaces, if any.
  , issuing'cardReplacementFor :: (GHC.Maybe.Maybe Issuing'cardReplacementFor'Variants)
  -- | replacement_reason: The reason why the previous card needed to be replaced.
  , issuing'cardReplacementReason :: (GHC.Maybe.Maybe Issuing'cardReplacementReason')
  -- | shipping: Where and how the card will be shipped.
  , issuing'cardShipping :: (GHC.Maybe.Maybe Issuing'cardShipping')
  -- | status: Whether authorizations can be approved on this card.
  , issuing'cardStatus :: Issuing'cardStatus'
  -- | type: The type of the card.
  , issuing'cardType :: Issuing'cardType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'card
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "authorization_controls" (issuing'cardAuthorizationControls obj) : (Data.Aeson..=) "brand" (issuing'cardBrand obj) : (Data.Aeson..=) "cardholder" (issuing'cardCardholder obj) : (Data.Aeson..=) "created" (issuing'cardCreated obj) : (Data.Aeson..=) "currency" (issuing'cardCurrency obj) : (Data.Aeson..=) "exp_month" (issuing'cardExpMonth obj) : (Data.Aeson..=) "exp_year" (issuing'cardExpYear obj) : (Data.Aeson..=) "id" (issuing'cardId obj) : (Data.Aeson..=) "last4" (issuing'cardLast4 obj) : (Data.Aeson..=) "livemode" (issuing'cardLivemode obj) : (Data.Aeson..=) "metadata" (issuing'cardMetadata obj) : (Data.Aeson..=) "name" (issuing'cardName obj) : (Data.Aeson..=) "object" (issuing'cardObject obj) : (Data.Aeson..=) "pin" (issuing'cardPin obj) : (Data.Aeson..=) "replacement_for" (issuing'cardReplacementFor obj) : (Data.Aeson..=) "replacement_reason" (issuing'cardReplacementReason obj) : (Data.Aeson..=) "shipping" (issuing'cardShipping obj) : (Data.Aeson..=) "status" (issuing'cardStatus obj) : (Data.Aeson..=) "type" (issuing'cardType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "authorization_controls" (issuing'cardAuthorizationControls obj) GHC.Base.<> ((Data.Aeson..=) "brand" (issuing'cardBrand obj) GHC.Base.<> ((Data.Aeson..=) "cardholder" (issuing'cardCardholder obj) GHC.Base.<> ((Data.Aeson..=) "created" (issuing'cardCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (issuing'cardCurrency obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (issuing'cardExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (issuing'cardExpYear obj) GHC.Base.<> ((Data.Aeson..=) "id" (issuing'cardId obj) GHC.Base.<> ((Data.Aeson..=) "last4" (issuing'cardLast4 obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (issuing'cardLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (issuing'cardMetadata obj) GHC.Base.<> ((Data.Aeson..=) "name" (issuing'cardName obj) GHC.Base.<> ((Data.Aeson..=) "object" (issuing'cardObject obj) GHC.Base.<> ((Data.Aeson..=) "pin" (issuing'cardPin obj) GHC.Base.<> ((Data.Aeson..=) "replacement_for" (issuing'cardReplacementFor obj) GHC.Base.<> ((Data.Aeson..=) "replacement_reason" (issuing'cardReplacementReason obj) GHC.Base.<> ((Data.Aeson..=) "shipping" (issuing'cardShipping obj) GHC.Base.<> ((Data.Aeson..=) "status" (issuing'cardStatus obj) GHC.Base.<> (Data.Aeson..=) "type" (issuing'cardType obj)))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'card
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'card" (\obj -> ((((((((((((((((((GHC.Base.pure Issuing'card GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "authorization_controls")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cardholder")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "pin")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "replacement_for")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "replacement_reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Defines the data type for the schema issuing.cardCardholder\'
-- 
-- The [Cardholder](https:\\\/\\\/stripe.com\\\/docs\\\/api\\\#issuing_cardholder_object) object to which the card belongs.
data Issuing'cardCardholder' = Issuing'cardCardholder' {
  -- | authorization_controls: Spending rules that give you some control over how this cardholder\'s cards can be used. Refer to our [authorizations](https:\/\/stripe.com\/docs\/issuing\/authorizations) documentation for more details.
  issuing'cardCardholder'AuthorizationControls :: (GHC.Maybe.Maybe Issuing'cardCardholder'AuthorizationControls')
  -- | billing: 
  , issuing'cardCardholder'Billing :: (GHC.Maybe.Maybe IssuingCardholderAddress)
  -- | company: Additional information about a \`business_entity\` cardholder.
  , issuing'cardCardholder'Company :: (GHC.Maybe.Maybe Issuing'cardCardholder'Company')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , issuing'cardCardholder'Created :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | email: The cardholder\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardCardholder'Email :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardCardholder'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | individual: Additional information about an \`individual\` cardholder.
  , issuing'cardCardholder'Individual :: (GHC.Maybe.Maybe Issuing'cardCardholder'Individual')
  -- | is_default: Whether or not this cardholder is the default cardholder.
  , issuing'cardCardholder'IsDefault :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , issuing'cardCardholder'Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , issuing'cardCardholder'Metadata :: (GHC.Maybe.Maybe Issuing'cardCardholder'Metadata')
  -- | name: The cardholder\'s name. This will be printed on cards issued to them.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardCardholder'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , issuing'cardCardholder'Object :: (GHC.Maybe.Maybe Issuing'cardCardholder'Object')
  -- | phone_number: The cardholder\'s phone number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardCardholder'PhoneNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | requirements: 
  , issuing'cardCardholder'Requirements :: (GHC.Maybe.Maybe IssuingCardholderRequirements)
  -- | status: Specifies whether to permit authorizations on this cardholder\'s cards.
  , issuing'cardCardholder'Status :: (GHC.Maybe.Maybe Issuing'cardCardholder'Status')
  -- | type: One of \`individual\` or \`business_entity\`.
  , issuing'cardCardholder'Type :: (GHC.Maybe.Maybe Issuing'cardCardholder'Type')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "authorization_controls" (issuing'cardCardholder'AuthorizationControls obj) : (Data.Aeson..=) "billing" (issuing'cardCardholder'Billing obj) : (Data.Aeson..=) "company" (issuing'cardCardholder'Company obj) : (Data.Aeson..=) "created" (issuing'cardCardholder'Created obj) : (Data.Aeson..=) "email" (issuing'cardCardholder'Email obj) : (Data.Aeson..=) "id" (issuing'cardCardholder'Id obj) : (Data.Aeson..=) "individual" (issuing'cardCardholder'Individual obj) : (Data.Aeson..=) "is_default" (issuing'cardCardholder'IsDefault obj) : (Data.Aeson..=) "livemode" (issuing'cardCardholder'Livemode obj) : (Data.Aeson..=) "metadata" (issuing'cardCardholder'Metadata obj) : (Data.Aeson..=) "name" (issuing'cardCardholder'Name obj) : (Data.Aeson..=) "object" (issuing'cardCardholder'Object obj) : (Data.Aeson..=) "phone_number" (issuing'cardCardholder'PhoneNumber obj) : (Data.Aeson..=) "requirements" (issuing'cardCardholder'Requirements obj) : (Data.Aeson..=) "status" (issuing'cardCardholder'Status obj) : (Data.Aeson..=) "type" (issuing'cardCardholder'Type obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "authorization_controls" (issuing'cardCardholder'AuthorizationControls obj) GHC.Base.<> ((Data.Aeson..=) "billing" (issuing'cardCardholder'Billing obj) GHC.Base.<> ((Data.Aeson..=) "company" (issuing'cardCardholder'Company obj) GHC.Base.<> ((Data.Aeson..=) "created" (issuing'cardCardholder'Created obj) GHC.Base.<> ((Data.Aeson..=) "email" (issuing'cardCardholder'Email obj) GHC.Base.<> ((Data.Aeson..=) "id" (issuing'cardCardholder'Id obj) GHC.Base.<> ((Data.Aeson..=) "individual" (issuing'cardCardholder'Individual obj) GHC.Base.<> ((Data.Aeson..=) "is_default" (issuing'cardCardholder'IsDefault obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (issuing'cardCardholder'Livemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (issuing'cardCardholder'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "name" (issuing'cardCardholder'Name obj) GHC.Base.<> ((Data.Aeson..=) "object" (issuing'cardCardholder'Object obj) GHC.Base.<> ((Data.Aeson..=) "phone_number" (issuing'cardCardholder'PhoneNumber obj) GHC.Base.<> ((Data.Aeson..=) "requirements" (issuing'cardCardholder'Requirements obj) GHC.Base.<> ((Data.Aeson..=) "status" (issuing'cardCardholder'Status obj) GHC.Base.<> (Data.Aeson..=) "type" (issuing'cardCardholder'Type obj))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardCardholder'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardCardholder'" (\obj -> (((((((((((((((GHC.Base.pure Issuing'cardCardholder' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "authorization_controls")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "company")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "individual")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "is_default")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "requirements")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the data type for the schema issuing.cardCardholder\'Authorization_controls\'
-- 
-- Spending rules that give you some control over how this cardholder\\\'s cards can be used. Refer to our [authorizations](https:\\\/\\\/stripe.com\\\/docs\\\/issuing\\\/authorizations) documentation for more details.
data Issuing'cardCardholder'AuthorizationControls' = Issuing'cardCardholder'AuthorizationControls' {
  -- | allowed_categories: Array of strings containing [categories](https:\/\/stripe.com\/docs\/api\#issuing_authorization_object-merchant_data-category) of authorizations permitted on this cardholder\'s cards.
  issuing'cardCardholder'AuthorizationControls'AllowedCategories :: (GHC.Maybe.Maybe ([] Issuing'cardCardholder'AuthorizationControls'AllowedCategories'))
  -- | blocked_categories: Array of strings containing [categories](https:\/\/stripe.com\/docs\/api\#issuing_authorization_object-merchant_data-category) of authorizations to always decline on this cardholder\'s cards.
  , issuing'cardCardholder'AuthorizationControls'BlockedCategories :: (GHC.Maybe.Maybe ([] Issuing'cardCardholder'AuthorizationControls'BlockedCategories'))
  -- | spending_limits: Limit the spending with rules based on time intervals and categories.
  , issuing'cardCardholder'AuthorizationControls'SpendingLimits :: (GHC.Maybe.Maybe ([] IssuingCardholderSpendingLimit))
  -- | spending_limits_currency: Currency for the amounts within spending_limits.
  , issuing'cardCardholder'AuthorizationControls'SpendingLimitsCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'AuthorizationControls'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "allowed_categories" (issuing'cardCardholder'AuthorizationControls'AllowedCategories obj) : (Data.Aeson..=) "blocked_categories" (issuing'cardCardholder'AuthorizationControls'BlockedCategories obj) : (Data.Aeson..=) "spending_limits" (issuing'cardCardholder'AuthorizationControls'SpendingLimits obj) : (Data.Aeson..=) "spending_limits_currency" (issuing'cardCardholder'AuthorizationControls'SpendingLimitsCurrency obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "allowed_categories" (issuing'cardCardholder'AuthorizationControls'AllowedCategories obj) GHC.Base.<> ((Data.Aeson..=) "blocked_categories" (issuing'cardCardholder'AuthorizationControls'BlockedCategories obj) GHC.Base.<> ((Data.Aeson..=) "spending_limits" (issuing'cardCardholder'AuthorizationControls'SpendingLimits obj) GHC.Base.<> (Data.Aeson..=) "spending_limits_currency" (issuing'cardCardholder'AuthorizationControls'SpendingLimitsCurrency obj))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardCardholder'AuthorizationControls'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardCardholder'AuthorizationControls'" (\obj -> (((GHC.Base.pure Issuing'cardCardholder'AuthorizationControls' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "allowed_categories")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "blocked_categories")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "spending_limits")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "spending_limits_currency"))
-- | Defines the enum schema issuing.cardCardholder\'Authorization_controls\'Allowed_categories\'
-- 
-- 
data Issuing'cardCardholder'AuthorizationControls'AllowedCategories'
    = Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumTyped GHC.Base.String
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAcRefrigerationRepair
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAccountingBookkeepingServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAdvertisingServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAgriculturalCooperative
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAirlinesAirCarriers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAirportsFlyingFields
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAmbulanceServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAmusementParksCarnivals
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAntiqueReproductions
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAntiqueShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAquariums
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringArchitecturalSurveyingServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringArtDealersAndGalleries
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringArtistsSupplyAndCraftShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoAndHomeSupplyStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoBodyRepairShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoPaintShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoServiceShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomatedCashDisburse
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomatedFuelDispensers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomobileAssociations
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomotivePartsAndAccessoriesStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomotiveTireStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBailAndBondPayments
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBakeries
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBandsOrchestras
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBarberAndBeautyShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBettingCasinoGambling
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBicycleShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBilliardPoolEstablishments
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBoatDealers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBoatRentalsAndLeases
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBookStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBooksPeriodicalsAndNewspapers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBowlingAlleys
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBusLines
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBusinessSecretarialSchools
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBuyingShoppingServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCameraAndPhotographicSupplyStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCandyNutAndConfectioneryStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersNewUsed
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersUsedOnly
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarRentalAgencies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarWashes
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarpentryServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarpetUpholsteryCleaning
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCaterers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChemicalsAndAlliedProducts
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChildCareServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChildrensAndInfantsWearStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChiropodistsPodiatrists
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChiropractors
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCigarStoresAndStands
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCivicSocialFraternalAssociations
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCleaningAndMaintenance
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringClothingRental
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCollegesUniversities
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommercialEquipment
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommercialFootwear
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommercialPhotographyArtAndGraphics
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommuterTransportAndFerries
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerNetworkServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerProgramming
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerRepair
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerSoftwareStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputersPeripheralsAndSoftware
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringConcreteWorkServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringConstructionMaterials
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringConsultingPublicRelations
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCorrespondenceSchools
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCosmeticStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCounselingServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCountryClubs
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCourierServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCourtCosts
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCreditReportingAgencies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCruiseLines
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDairyProductsStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDanceHallStudiosSchools
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDatingEscortServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDentistsOrthodontists
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDepartmentStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDetectiveAgencies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsApplications
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsGames
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsLargeVolume
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsMedia
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingCatalogMerchant
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingInboundTelemarketing
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingInsuranceServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingOther
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingOutboundTelemarketing
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingSubscription
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingTravel
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDiscountStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDoctors
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDoorToDoorSales
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDrinkingPlaces
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDrugStoresAndPharmacies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDryCleaners
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDurableGoods
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDutyFreeStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEatingPlacesRestaurants
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEducationalServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectricRazorStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectricalPartsAndEquipment
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectricalServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectronicsRepairShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectronicsStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElementarySecondarySchools
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEmploymentTempAgencies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEquipmentRental
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringExterminatingServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFamilyClothingStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFastFoodRestaurants
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFinancialInstitutions
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFinesGovernmentAdministrativeEntities
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFloorCoveringStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFlorists
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFreezerAndLockerMeatProvisioners
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFuelDealersNonAutomotive
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFuneralServicesCrematories
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFurnitureRepairRefinishing
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFurriersAndFurShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGeneralServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGiftCardNoveltyAndSouvenirShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGlassPaintAndWallpaperStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGlasswareCrystalStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGolfCoursesPublic
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGovernmentServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGroceryStoresSupermarkets
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHardwareEquipmentAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHardwareStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHealthAndBeautySpas
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHearingAidsSalesAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHeatingPlumbingAC
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHobbyToyAndGameShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHomeSupplyWarehouseStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHospitals
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHotelsMotelsAndResorts
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHouseholdApplianceStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringIndustrialSupplies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringInformationRetrievalServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringInsuranceDefault
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringInsuranceUnderwritingPremiums
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringIntraCompanyPurchases
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLandscapingServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLaundries
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLaundryCleaningServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLegalServicesAttorneys
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLuggageAndLeatherGoodsStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLumberBuildingMaterialsStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringManualCashDisburse
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMarinasServiceAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMasonryStoneworkAndPlaster
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMassageParlors
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMedicalAndDentalLabs
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMedicalServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMembershipOrganizations
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMensWomensClothingStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMetalServiceCenters
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneous
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousApparelAndAccessoryShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousAutoDealers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousBusinessServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousFoodStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralMerchandise
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousPublishingAndPrinting
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousRecreationServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousRepairShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousSpecialtyRetail
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMobileHomeDealers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotionPictureTheaters
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorFreightCarriersAndTrucking
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorHomesDealers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorVehicleSuppliesAndNewParts
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsAndDealers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsDealers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNewsDealersAndNewsstands
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNonFiMoneyOrders
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNonFiStoredValueCardPurchaseLoad
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNondurableGoods
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNurseriesLawnAndGardenSupplyStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNursingPersonalCare
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOfficeAndCommercialFurniture
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOpticiansEyeglasses
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOptometristsOphthalmologist
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOrthopedicGoodsProstheticDevices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOsteopaths
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPackageStoresBeerWineAndLiquor
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPaintsVarnishesAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringParkingLotsGarages
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPassengerRailways
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPawnShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPetShopsPetFoodAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPetroleumAndPetroleumProducts
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPhotoDeveloping
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPhotographicStudios
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPictureVideoProduction
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPoliticalOrganizations
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPostalServicesGovernmentOnly
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringProfessionalServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPublicWarehousingAndStorage
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringQuickCopyReproAndBlueprint
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRailroads
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRealEstateAgentsAndManagersRentals
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRecordStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRecreationalVehicleRentals
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringReligiousGoodsStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringReligiousOrganizations
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRoofingSidingSheetMetal
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSecretarialSupportServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSecurityBrokersDealers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringServiceStations
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringShoeRepairHatCleaning
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringShoeStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSmallApplianceRepair
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSnowmobileDealers
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSpecialTradeServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSpecialtyCleaning
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportingGoodsStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportingRecreationCamps
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportsAndRidingApparelStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportsClubsFields
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringStampAndCoinStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSwimmingPoolsSales
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTUiTravelGermany
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTailorsAlterations
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTaxPaymentsGovernmentAgencies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTaxPreparationServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTaxicabsLimousines
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTelecommunicationServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTelegraphServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTentAndAwningShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTestingLaboratories
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTheatricalTicketAgencies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTimeshares
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTireRetreadingAndRepair
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTollsBridgeFees
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTouristAttractionsAndExhibits
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTowingServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTrailerParksCampgrounds
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTransportationServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTravelAgenciesTourOperators
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTruckStopIteration
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTruckUtilityTrailerRentals
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTypesettingPlateMakingAndRelatedServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTypewriterStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUniformsCommercialClothing
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUsedMerchandiseAndSecondhandStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUtilities
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVarietyStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVeterinaryServices
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVideoAmusementGameSupplies
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVideoGameArcades
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVideoTapeRentalStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVocationalTradeSchools
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWatchJewelryRepair
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWeldingRepair
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWholesaleClubs
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWigAndToupeeStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWiresMoneyOrders
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWomensAccessoryAndSpecialtyShops
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWomensReadyToWearStores
    | Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWreckingAndSalvageYards
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'AuthorizationControls'AllowedCategories'
    where toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAcRefrigerationRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ac_refrigeration_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAccountingBookkeepingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "accounting_bookkeeping_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAdvertisingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advertising_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAgriculturalCooperative) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "agricultural_cooperative"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAirlinesAirCarriers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airlines_air_carriers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAirportsFlyingFields) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airports_flying_fields"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAmbulanceServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ambulance_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAmusementParksCarnivals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amusement_parks_carnivals"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAntiqueReproductions) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_reproductions"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAntiqueShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAquariums) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "aquariums"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringArchitecturalSurveyingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "architectural_surveying_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringArtDealersAndGalleries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "art_dealers_and_galleries"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringArtistsSupplyAndCraftShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "artists_supply_and_craft_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoAndHomeSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_and_home_supply_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoBodyRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_body_repair_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoPaintShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_paint_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoServiceShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_service_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomatedCashDisburse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_cash_disburse"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomatedFuelDispensers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_fuel_dispensers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomobileAssociations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automobile_associations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomotivePartsAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_parts_and_accessories_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomotiveTireStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_tire_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBailAndBondPayments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bail_and_bond_payments"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBakeries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bakeries"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBandsOrchestras) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bands_orchestras"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBarberAndBeautyShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "barber_and_beauty_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBettingCasinoGambling) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "betting_casino_gambling"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBicycleShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bicycle_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBilliardPoolEstablishments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "billiard_pool_establishments"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBoatDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBoatRentalsAndLeases) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_rentals_and_leases"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBookStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "book_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBooksPeriodicalsAndNewspapers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "books_periodicals_and_newspapers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBowlingAlleys) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bowling_alleys"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBusLines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bus_lines"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBusinessSecretarialSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_secretarial_schools"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBuyingShoppingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "buying_shopping_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cable_satellite_and_other_pay_television_and_radio"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCameraAndPhotographicSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "camera_and_photographic_supply_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCandyNutAndConfectioneryStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "candy_nut_and_confectionery_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersNewUsed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_new_used"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersUsedOnly) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_used_only"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarRentalAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_rental_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarWashes) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_washes"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarpentryServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpentry_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarpetUpholsteryCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpet_upholstery_cleaning"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCaterers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "caterers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charitable_and_social_service_organizations_fundraising"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChemicalsAndAlliedProducts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chemicals_and_allied_products"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChildCareServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "child_care_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChildrensAndInfantsWearStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "childrens_and_infants_wear_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChiropodistsPodiatrists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropodists_podiatrists"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChiropractors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropractors"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCigarStoresAndStands) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cigar_stores_and_stands"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCivicSocialFraternalAssociations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "civic_social_fraternal_associations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCleaningAndMaintenance) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cleaning_and_maintenance"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringClothingRental) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "clothing_rental"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCollegesUniversities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "colleges_universities"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommercialEquipment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_equipment"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommercialFootwear) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_footwear"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommercialPhotographyArtAndGraphics) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_photography_art_and_graphics"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommuterTransportAndFerries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commuter_transport_and_ferries"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerNetworkServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_network_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerProgramming) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_programming"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerSoftwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_software_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputersPeripheralsAndSoftware) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computers_peripherals_and_software"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringConcreteWorkServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "concrete_work_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringConstructionMaterials) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "construction_materials"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringConsultingPublicRelations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "consulting_public_relations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCorrespondenceSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "correspondence_schools"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCosmeticStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cosmetic_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCounselingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "counseling_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCountryClubs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "country_clubs"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCourierServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "courier_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCourtCosts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "court_costs"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCreditReportingAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_reporting_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCruiseLines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cruise_lines"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDairyProductsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dairy_products_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDanceHallStudiosSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dance_hall_studios_schools"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDatingEscortServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dating_escort_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDentistsOrthodontists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dentists_orthodontists"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDepartmentStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "department_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDetectiveAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "detective_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsApplications) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_applications"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsGames) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_games"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsLargeVolume) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_large_volume"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsMedia) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_media"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingCatalogMerchant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_catalog_merchant"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_combination_catalog_and_retail_merchant"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingInboundTelemarketing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_inbound_telemarketing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingInsuranceServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_insurance_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingOther) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_other"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingOutboundTelemarketing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_outbound_telemarketing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingSubscription) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_subscription"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingTravel) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_travel"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDiscountStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDoctors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "doctors"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDoorToDoorSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "door_to_door_sales"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drapery_window_covering_and_upholstery_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDrinkingPlaces) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drinking_places"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDrugStoresAndPharmacies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drug_stores_and_pharmacies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drugs_drug_proprietaries_and_druggist_sundries"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDryCleaners) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dry_cleaners"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDurableGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "durable_goods"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDutyFreeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duty_free_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEatingPlacesRestaurants) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eating_places_restaurants"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEducationalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "educational_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectricRazorStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electric_razor_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectricalPartsAndEquipment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_parts_and_equipment"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectricalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectronicsRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_repair_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectronicsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElementarySecondarySchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "elementary_secondary_schools"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEmploymentTempAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "employment_temp_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEquipmentRental) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "equipment_rental"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringExterminatingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exterminating_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFamilyClothingStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "family_clothing_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFastFoodRestaurants) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fast_food_restaurants"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFinancialInstitutions) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "financial_institutions"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFinesGovernmentAdministrativeEntities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fines_government_administrative_entities"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fireplace_fireplace_screens_and_accessories_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFloorCoveringStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "floor_covering_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFlorists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists_supplies_nursery_stock_and_flowers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFreezerAndLockerMeatProvisioners) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "freezer_and_locker_meat_provisioners"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFuelDealersNonAutomotive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fuel_dealers_non_automotive"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFuneralServicesCrematories) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "funeral_services_crematories"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_home_furnishings_and_equipment_stores_except_appliances"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFurnitureRepairRefinishing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_repair_refinishing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFurriersAndFurShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furriers_and_fur_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGeneralServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "general_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGiftCardNoveltyAndSouvenirShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "gift_card_novelty_and_souvenir_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGlassPaintAndWallpaperStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glass_paint_and_wallpaper_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGlasswareCrystalStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glassware_crystal_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGolfCoursesPublic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "golf_courses_public"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGovernmentServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGroceryStoresSupermarkets) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "grocery_stores_supermarkets"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHardwareEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_equipment_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHardwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHealthAndBeautySpas) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "health_and_beauty_spas"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHearingAidsSalesAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hearing_aids_sales_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHeatingPlumbingAC) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "heating_plumbing_a_c"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHobbyToyAndGameShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hobby_toy_and_game_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHomeSupplyWarehouseStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "home_supply_warehouse_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHospitals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hospitals"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHotelsMotelsAndResorts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hotels_motels_and_resorts"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHouseholdApplianceStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "household_appliance_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringIndustrialSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "industrial_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringInformationRetrievalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "information_retrieval_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringInsuranceDefault) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_default"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringInsuranceUnderwritingPremiums) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_underwriting_premiums"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringIntraCompanyPurchases) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "intra_company_purchases"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "jewelry_stores_watches_clocks_and_silverware_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLandscapingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "landscaping_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLaundries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundries"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLaundryCleaningServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundry_cleaning_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLegalServicesAttorneys) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "legal_services_attorneys"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLuggageAndLeatherGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "luggage_and_leather_goods_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLumberBuildingMaterialsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lumber_building_materials_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringManualCashDisburse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual_cash_disburse"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMarinasServiceAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "marinas_service_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMasonryStoneworkAndPlaster) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masonry_stonework_and_plaster"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMassageParlors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "massage_parlors"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMedicalAndDentalLabs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_and_dental_labs"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_dental_ophthalmic_and_hospital_equipment_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMedicalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMembershipOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "membership_organizations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_and_boys_clothing_and_accessories_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMensWomensClothingStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_womens_clothing_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMetalServiceCenters) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metal_service_centers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneous) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousApparelAndAccessoryShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_apparel_and_accessory_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousAutoDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_auto_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousBusinessServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_business_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousFoodStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_food_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralMerchandise) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_merchandise"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_home_furnishing_specialty_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousPublishingAndPrinting) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_publishing_and_printing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousRecreationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_recreation_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_repair_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousSpecialtyRetail) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_specialty_retail"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMobileHomeDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mobile_home_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotionPictureTheaters) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motion_picture_theaters"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorFreightCarriersAndTrucking) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_freight_carriers_and_trucking"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorHomesDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_homes_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorVehicleSuppliesAndNewParts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_vehicle_supplies_and_new_parts"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsAndDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_and_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "music_stores_musical_instruments_pianos_and_sheet_music"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNewsDealersAndNewsstands) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "news_dealers_and_newsstands"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNonFiMoneyOrders) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_money_orders"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNonFiStoredValueCardPurchaseLoad) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_stored_value_card_purchase_load"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNondurableGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nondurable_goods"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNurseriesLawnAndGardenSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nurseries_lawn_and_garden_supply_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNursingPersonalCare) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nursing_personal_care"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOfficeAndCommercialFurniture) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "office_and_commercial_furniture"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOpticiansEyeglasses) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "opticians_eyeglasses"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOptometristsOphthalmologist) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "optometrists_ophthalmologist"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOrthopedicGoodsProstheticDevices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "orthopedic_goods_prosthetic_devices"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOsteopaths) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "osteopaths"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPackageStoresBeerWineAndLiquor) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "package_stores_beer_wine_and_liquor"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPaintsVarnishesAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "paints_varnishes_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringParkingLotsGarages) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "parking_lots_garages"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPassengerRailways) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "passenger_railways"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPawnShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pawn_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPetShopsPetFoodAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pet_shops_pet_food_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPetroleumAndPetroleumProducts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "petroleum_and_petroleum_products"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPhotoDeveloping) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photo_developing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_photocopy_microfilm_equipment_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPhotographicStudios) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_studios"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPictureVideoProduction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "picture_video_production"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "piece_goods_notions_and_other_dry_goods"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plumbing_heating_equipment_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPoliticalOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "political_organizations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPostalServicesGovernmentOnly) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "postal_services_government_only"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "precious_stones_and_metals_watches_and_jewelry"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringProfessionalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "professional_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPublicWarehousingAndStorage) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_warehousing_and_storage"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringQuickCopyReproAndBlueprint) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "quick_copy_repro_and_blueprint"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRailroads) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "railroads"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRealEstateAgentsAndManagersRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "real_estate_agents_and_managers_rentals"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRecordStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "record_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRecreationalVehicleRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "recreational_vehicle_rentals"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringReligiousGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_goods_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringReligiousOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_organizations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRoofingSidingSheetMetal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "roofing_siding_sheet_metal"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSecretarialSupportServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "secretarial_support_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSecurityBrokersDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "security_brokers_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringServiceStations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "service_stations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sewing_needlework_fabric_and_piece_goods_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringShoeRepairHatCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_repair_hat_cleaning"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringShoeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSmallApplianceRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "small_appliance_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSnowmobileDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "snowmobile_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSpecialTradeServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "special_trade_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSpecialtyCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "specialty_cleaning"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportingGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_goods_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportingRecreationCamps) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_recreation_camps"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportsAndRidingApparelStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_and_riding_apparel_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportsClubsFields) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_clubs_fields"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringStampAndCoinStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stamp_and_coin_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationary_office_supplies_printing_and_writing_paper"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationery_stores_office_and_school_supply_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSwimmingPoolsSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "swimming_pools_sales"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTUiTravelGermany) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "t_ui_travel_germany"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTailorsAlterations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tailors_alterations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTaxPaymentsGovernmentAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_payments_government_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTaxPreparationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_preparation_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTaxicabsLimousines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "taxicabs_limousines"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_equipment_and_telephone_sales"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTelecommunicationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTelegraphServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telegraph_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTentAndAwningShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tent_and_awning_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTestingLaboratories) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "testing_laboratories"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTheatricalTicketAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "theatrical_ticket_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTimeshares) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "timeshares"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTireRetreadingAndRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tire_retreading_and_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTollsBridgeFees) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tolls_bridge_fees"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTouristAttractionsAndExhibits) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tourist_attractions_and_exhibits"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTowingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "towing_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTrailerParksCampgrounds) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "trailer_parks_campgrounds"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTransportationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transportation_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTravelAgenciesTourOperators) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "travel_agencies_tour_operators"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTruckStopIteration) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_stop_iteration"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTruckUtilityTrailerRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_utility_trailer_rentals"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTypesettingPlateMakingAndRelatedServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typesetting_plate_making_and_related_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTypewriterStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typewriter_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "u_s_federal_government_agencies_or_departments"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUniformsCommercialClothing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "uniforms_commercial_clothing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUsedMerchandiseAndSecondhandStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "used_merchandise_and_secondhand_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUtilities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "utilities"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVarietyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "variety_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVeterinaryServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "veterinary_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVideoAmusementGameSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_amusement_game_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVideoGameArcades) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_game_arcades"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVideoTapeRentalStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_tape_rental_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVocationalTradeSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "vocational_trade_schools"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWatchJewelryRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "watch_jewelry_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWeldingRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "welding_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWholesaleClubs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wholesale_clubs"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWigAndToupeeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wig_and_toupee_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWiresMoneyOrders) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wires_money_orders"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWomensAccessoryAndSpecialtyShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_accessory_and_specialty_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWomensReadyToWearStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_ready_to_wear_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWreckingAndSalvageYards) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wrecking_and_salvage_yards"
instance Data.Aeson.FromJSON Issuing'cardCardholder'AuthorizationControls'AllowedCategories'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ac_refrigeration_repair")
                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAcRefrigerationRepair
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "accounting_bookkeeping_services")
                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAccountingBookkeepingServices
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advertising_services")
                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAdvertisingServices
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "agricultural_cooperative")
                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAgriculturalCooperative
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airlines_air_carriers")
                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAirlinesAirCarriers
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airports_flying_fields")
                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAirportsFlyingFields
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ambulance_services")
                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAmbulanceServices
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amusement_parks_carnivals")
                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAmusementParksCarnivals
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_reproductions")
                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAntiqueReproductions
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_shops")
                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAntiqueShops
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "aquariums")
                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAquariums
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "architectural_surveying_services")
                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringArchitecturalSurveyingServices
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "art_dealers_and_galleries")
                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringArtDealersAndGalleries
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "artists_supply_and_craft_shops")
                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringArtistsSupplyAndCraftShops
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_and_home_supply_stores")
                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoAndHomeSupplyStores
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_body_repair_shops")
                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoBodyRepairShops
                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_paint_shops")
                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoPaintShops
                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_service_shops")
                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutoServiceShops
                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_cash_disburse")
                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomatedCashDisburse
                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_fuel_dispensers")
                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomatedFuelDispensers
                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automobile_associations")
                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomobileAssociations
                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_parts_and_accessories_stores")
                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomotivePartsAndAccessoriesStores
                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_tire_stores")
                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringAutomotiveTireStores
                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bail_and_bond_payments")
                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBailAndBondPayments
                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bakeries")
                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBakeries
                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bands_orchestras")
                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBandsOrchestras
                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "barber_and_beauty_shops")
                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBarberAndBeautyShops
                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "betting_casino_gambling")
                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBettingCasinoGambling
                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bicycle_shops")
                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBicycleShops
                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "billiard_pool_establishments")
                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBilliardPoolEstablishments
                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_dealers")
                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBoatDealers
                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_rentals_and_leases")
                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBoatRentalsAndLeases
                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "book_stores")
                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBookStores
                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "books_periodicals_and_newspapers")
                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBooksPeriodicalsAndNewspapers
                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bowling_alleys")
                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBowlingAlleys
                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bus_lines")
                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBusLines
                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_secretarial_schools")
                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBusinessSecretarialSchools
                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "buying_shopping_services")
                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringBuyingShoppingServices
                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cable_satellite_and_other_pay_television_and_radio")
                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio
                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "camera_and_photographic_supply_stores")
                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCameraAndPhotographicSupplyStores
                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "candy_nut_and_confectionery_stores")
                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCandyNutAndConfectioneryStores
                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_new_used")
                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersNewUsed
                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_used_only")
                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersUsedOnly
                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_rental_agencies")
                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarRentalAgencies
                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_washes")
                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarWashes
                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpentry_services")
                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarpentryServices
                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpet_upholstery_cleaning")
                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCarpetUpholsteryCleaning
                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "caterers")
                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCaterers
                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charitable_and_social_service_organizations_fundraising")
                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising
                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chemicals_and_allied_products")
                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChemicalsAndAlliedProducts
                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "child_care_services")
                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChildCareServices
                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "childrens_and_infants_wear_stores")
                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChildrensAndInfantsWearStores
                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropodists_podiatrists")
                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChiropodistsPodiatrists
                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropractors")
                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringChiropractors
                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cigar_stores_and_stands")
                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCigarStoresAndStands
                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "civic_social_fraternal_associations")
                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCivicSocialFraternalAssociations
                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cleaning_and_maintenance")
                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCleaningAndMaintenance
                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "clothing_rental")
                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringClothingRental
                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "colleges_universities")
                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCollegesUniversities
                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_equipment")
                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommercialEquipment
                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_footwear")
                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommercialFootwear
                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_photography_art_and_graphics")
                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommercialPhotographyArtAndGraphics
                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commuter_transport_and_ferries")
                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCommuterTransportAndFerries
                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_network_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerNetworkServices
                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_programming")
                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerProgramming
                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_software_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputerSoftwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computers_peripherals_and_software")
                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringComputersPeripheralsAndSoftware
                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "concrete_work_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringConcreteWorkServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "construction_materials")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringConstructionMaterials
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "consulting_public_relations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringConsultingPublicRelations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "correspondence_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCorrespondenceSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cosmetic_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCosmeticStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "counseling_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCounselingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "country_clubs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCountryClubs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "courier_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCourierServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "court_costs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCourtCosts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_reporting_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCreditReportingAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cruise_lines")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringCruiseLines
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dairy_products_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDairyProductsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dance_hall_studios_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDanceHallStudiosSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dating_escort_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDatingEscortServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dentists_orthodontists")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDentistsOrthodontists
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "department_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDepartmentStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "detective_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDetectiveAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_applications")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsApplications
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_games")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsGames
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_large_volume")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsLargeVolume
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_media")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDigitalGoodsMedia
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_catalog_merchant")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingCatalogMerchant
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_combination_catalog_and_retail_merchant")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_inbound_telemarketing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingInboundTelemarketing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_insurance_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingInsuranceServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_other")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingOther
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_outbound_telemarketing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingOutboundTelemarketing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_subscription")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingSubscription
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_travel")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDirectMarketingTravel
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDiscountStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "doctors")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDoctors
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "door_to_door_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDoorToDoorSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drapery_window_covering_and_upholstery_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drinking_places")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDrinkingPlaces
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drug_stores_and_pharmacies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDrugStoresAndPharmacies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drugs_drug_proprietaries_and_druggist_sundries")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dry_cleaners")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDryCleaners
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "durable_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDurableGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duty_free_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringDutyFreeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eating_places_restaurants")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEatingPlacesRestaurants
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "educational_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEducationalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electric_razor_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectricRazorStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_parts_and_equipment")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectricalPartsAndEquipment
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectricalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_repair_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectronicsRepairShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElectronicsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "elementary_secondary_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringElementarySecondarySchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "employment_temp_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEmploymentTempAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "equipment_rental")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringEquipmentRental
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exterminating_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringExterminatingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "family_clothing_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFamilyClothingStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fast_food_restaurants")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFastFoodRestaurants
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "financial_institutions")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFinancialInstitutions
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fines_government_administrative_entities")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFinesGovernmentAdministrativeEntities
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fireplace_fireplace_screens_and_accessories_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "floor_covering_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFloorCoveringStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFlorists
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists_supplies_nursery_stock_and_flowers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "freezer_and_locker_meat_provisioners")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFreezerAndLockerMeatProvisioners
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fuel_dealers_non_automotive")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFuelDealersNonAutomotive
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "funeral_services_crematories")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFuneralServicesCrematories
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_home_furnishings_and_equipment_stores_except_appliances")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_repair_refinishing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFurnitureRepairRefinishing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furriers_and_fur_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringFurriersAndFurShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "general_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGeneralServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "gift_card_novelty_and_souvenir_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGiftCardNoveltyAndSouvenirShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glass_paint_and_wallpaper_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGlassPaintAndWallpaperStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glassware_crystal_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGlasswareCrystalStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "golf_courses_public")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGolfCoursesPublic
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGovernmentServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "grocery_stores_supermarkets")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringGroceryStoresSupermarkets
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHardwareEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHardwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "health_and_beauty_spas")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHealthAndBeautySpas
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hearing_aids_sales_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHearingAidsSalesAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "heating_plumbing_a_c")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHeatingPlumbingAC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hobby_toy_and_game_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHobbyToyAndGameShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "home_supply_warehouse_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHomeSupplyWarehouseStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hospitals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHospitals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hotels_motels_and_resorts")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHotelsMotelsAndResorts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "household_appliance_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringHouseholdApplianceStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "industrial_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringIndustrialSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "information_retrieval_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringInformationRetrievalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_default")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringInsuranceDefault
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_underwriting_premiums")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringInsuranceUnderwritingPremiums
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "intra_company_purchases")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringIntraCompanyPurchases
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "jewelry_stores_watches_clocks_and_silverware_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "landscaping_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLandscapingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundries")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLaundries
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundry_cleaning_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLaundryCleaningServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "legal_services_attorneys")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLegalServicesAttorneys
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "luggage_and_leather_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLuggageAndLeatherGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lumber_building_materials_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringLumberBuildingMaterialsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual_cash_disburse")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringManualCashDisburse
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "marinas_service_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMarinasServiceAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masonry_stonework_and_plaster")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMasonryStoneworkAndPlaster
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "massage_parlors")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMassageParlors
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_and_dental_labs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMedicalAndDentalLabs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_dental_ophthalmic_and_hospital_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMedicalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "membership_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMembershipOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_and_boys_clothing_and_accessories_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_womens_clothing_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMensWomensClothingStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metal_service_centers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMetalServiceCenters
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneous
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_apparel_and_accessory_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousApparelAndAccessoryShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_auto_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousAutoDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_business_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousBusinessServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_food_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousFoodStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_merchandise")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralMerchandise
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_home_furnishing_specialty_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_publishing_and_printing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousPublishingAndPrinting
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_recreation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousRecreationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_repair_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousRepairShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_specialty_retail")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMiscellaneousSpecialtyRetail
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mobile_home_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMobileHomeDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motion_picture_theaters")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotionPictureTheaters
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_freight_carriers_and_trucking")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorFreightCarriersAndTrucking
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_homes_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorHomesDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_vehicle_supplies_and_new_parts")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorVehicleSuppliesAndNewParts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_and_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsAndDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "music_stores_musical_instruments_pianos_and_sheet_music")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "news_dealers_and_newsstands")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNewsDealersAndNewsstands
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_money_orders")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNonFiMoneyOrders
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_stored_value_card_purchase_load")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNonFiStoredValueCardPurchaseLoad
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nondurable_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNondurableGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nurseries_lawn_and_garden_supply_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNurseriesLawnAndGardenSupplyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nursing_personal_care")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringNursingPersonalCare
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "office_and_commercial_furniture")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOfficeAndCommercialFurniture
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "opticians_eyeglasses")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOpticiansEyeglasses
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "optometrists_ophthalmologist")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOptometristsOphthalmologist
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "orthopedic_goods_prosthetic_devices")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOrthopedicGoodsProstheticDevices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "osteopaths")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringOsteopaths
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "package_stores_beer_wine_and_liquor")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPackageStoresBeerWineAndLiquor
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "paints_varnishes_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPaintsVarnishesAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "parking_lots_garages")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringParkingLotsGarages
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "passenger_railways")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPassengerRailways
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pawn_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPawnShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pet_shops_pet_food_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPetShopsPetFoodAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "petroleum_and_petroleum_products")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPetroleumAndPetroleumProducts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photo_developing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPhotoDeveloping
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_photocopy_microfilm_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_studios")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPhotographicStudios
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "picture_video_production")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPictureVideoProduction
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "piece_goods_notions_and_other_dry_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plumbing_heating_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "political_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPoliticalOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "postal_services_government_only")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPostalServicesGovernmentOnly
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "precious_stones_and_metals_watches_and_jewelry")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "professional_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringProfessionalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_warehousing_and_storage")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringPublicWarehousingAndStorage
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "quick_copy_repro_and_blueprint")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringQuickCopyReproAndBlueprint
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "railroads")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRailroads
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "real_estate_agents_and_managers_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRealEstateAgentsAndManagersRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "record_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRecordStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "recreational_vehicle_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRecreationalVehicleRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringReligiousGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringReligiousOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "roofing_siding_sheet_metal")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringRoofingSidingSheetMetal
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "secretarial_support_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSecretarialSupportServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "security_brokers_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSecurityBrokersDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "service_stations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringServiceStations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sewing_needlework_fabric_and_piece_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_repair_hat_cleaning")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringShoeRepairHatCleaning
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringShoeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "small_appliance_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSmallApplianceRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "snowmobile_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSnowmobileDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "special_trade_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSpecialTradeServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "specialty_cleaning")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSpecialtyCleaning
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportingGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_recreation_camps")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportingRecreationCamps
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_and_riding_apparel_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportsAndRidingApparelStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_clubs_fields")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSportsClubsFields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stamp_and_coin_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringStampAndCoinStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationary_office_supplies_printing_and_writing_paper")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationery_stores_office_and_school_supply_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "swimming_pools_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringSwimmingPoolsSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "t_ui_travel_germany")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTUiTravelGermany
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tailors_alterations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTailorsAlterations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_payments_government_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTaxPaymentsGovernmentAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_preparation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTaxPreparationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "taxicabs_limousines")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTaxicabsLimousines
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_equipment_and_telephone_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTelecommunicationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telegraph_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTelegraphServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tent_and_awning_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTentAndAwningShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "testing_laboratories")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTestingLaboratories
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "theatrical_ticket_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTheatricalTicketAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "timeshares")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTimeshares
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tire_retreading_and_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTireRetreadingAndRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tolls_bridge_fees")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTollsBridgeFees
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tourist_attractions_and_exhibits")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTouristAttractionsAndExhibits
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "towing_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTowingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "trailer_parks_campgrounds")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTrailerParksCampgrounds
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transportation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTransportationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "travel_agencies_tour_operators")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTravelAgenciesTourOperators
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_stop_iteration")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTruckStopIteration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_utility_trailer_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTruckUtilityTrailerRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typesetting_plate_making_and_related_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTypesettingPlateMakingAndRelatedServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typewriter_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringTypewriterStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "u_s_federal_government_agencies_or_departments")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "uniforms_commercial_clothing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUniformsCommercialClothing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "used_merchandise_and_secondhand_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUsedMerchandiseAndSecondhandStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "utilities")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringUtilities
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "variety_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVarietyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "veterinary_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVeterinaryServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_amusement_game_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVideoAmusementGameSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_game_arcades")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVideoGameArcades
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_tape_rental_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVideoTapeRentalStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "vocational_trade_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringVocationalTradeSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "watch_jewelry_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWatchJewelryRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "welding_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWeldingRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wholesale_clubs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWholesaleClubs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wig_and_toupee_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWigAndToupeeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wires_money_orders")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWiresMoneyOrders
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_accessory_and_specialty_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWomensAccessoryAndSpecialtyShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_ready_to_wear_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWomensReadyToWearStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wrecking_and_salvage_yards")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumStringWreckingAndSalvageYards
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else Issuing'cardCardholder'AuthorizationControls'AllowedCategories'EnumOther val)
-- | Defines the enum schema issuing.cardCardholder\'Authorization_controls\'Blocked_categories\'
-- 
-- 
data Issuing'cardCardholder'AuthorizationControls'BlockedCategories'
    = Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumTyped GHC.Base.String
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAcRefrigerationRepair
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAccountingBookkeepingServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAdvertisingServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAgriculturalCooperative
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAirlinesAirCarriers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAirportsFlyingFields
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAmbulanceServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAmusementParksCarnivals
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAntiqueReproductions
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAntiqueShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAquariums
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringArchitecturalSurveyingServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringArtDealersAndGalleries
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringArtistsSupplyAndCraftShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoAndHomeSupplyStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoBodyRepairShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoPaintShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoServiceShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomatedCashDisburse
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomatedFuelDispensers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomobileAssociations
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomotivePartsAndAccessoriesStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomotiveTireStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBailAndBondPayments
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBakeries
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBandsOrchestras
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBarberAndBeautyShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBettingCasinoGambling
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBicycleShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBilliardPoolEstablishments
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBoatDealers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBoatRentalsAndLeases
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBookStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBooksPeriodicalsAndNewspapers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBowlingAlleys
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBusLines
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBusinessSecretarialSchools
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBuyingShoppingServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCameraAndPhotographicSupplyStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCandyNutAndConfectioneryStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersNewUsed
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersUsedOnly
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarRentalAgencies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarWashes
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarpentryServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarpetUpholsteryCleaning
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCaterers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChemicalsAndAlliedProducts
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChildCareServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChildrensAndInfantsWearStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChiropodistsPodiatrists
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChiropractors
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCigarStoresAndStands
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCivicSocialFraternalAssociations
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCleaningAndMaintenance
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringClothingRental
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCollegesUniversities
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommercialEquipment
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommercialFootwear
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommercialPhotographyArtAndGraphics
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommuterTransportAndFerries
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerNetworkServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerProgramming
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerRepair
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerSoftwareStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputersPeripheralsAndSoftware
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringConcreteWorkServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringConstructionMaterials
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringConsultingPublicRelations
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCorrespondenceSchools
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCosmeticStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCounselingServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCountryClubs
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCourierServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCourtCosts
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCreditReportingAgencies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCruiseLines
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDairyProductsStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDanceHallStudiosSchools
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDatingEscortServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDentistsOrthodontists
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDepartmentStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDetectiveAgencies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsApplications
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsGames
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsLargeVolume
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsMedia
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingCatalogMerchant
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingInboundTelemarketing
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingInsuranceServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingOther
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingOutboundTelemarketing
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingSubscription
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingTravel
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDiscountStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDoctors
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDoorToDoorSales
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDrinkingPlaces
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDrugStoresAndPharmacies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDryCleaners
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDurableGoods
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDutyFreeStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEatingPlacesRestaurants
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEducationalServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectricRazorStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectricalPartsAndEquipment
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectricalServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectronicsRepairShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectronicsStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElementarySecondarySchools
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEmploymentTempAgencies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEquipmentRental
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringExterminatingServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFamilyClothingStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFastFoodRestaurants
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFinancialInstitutions
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFinesGovernmentAdministrativeEntities
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFloorCoveringStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFlorists
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFreezerAndLockerMeatProvisioners
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFuelDealersNonAutomotive
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFuneralServicesCrematories
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFurnitureRepairRefinishing
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFurriersAndFurShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGeneralServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGiftCardNoveltyAndSouvenirShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGlassPaintAndWallpaperStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGlasswareCrystalStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGolfCoursesPublic
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGovernmentServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGroceryStoresSupermarkets
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHardwareEquipmentAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHardwareStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHealthAndBeautySpas
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHearingAidsSalesAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHeatingPlumbingAC
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHobbyToyAndGameShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHomeSupplyWarehouseStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHospitals
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHotelsMotelsAndResorts
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHouseholdApplianceStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringIndustrialSupplies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringInformationRetrievalServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringInsuranceDefault
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringInsuranceUnderwritingPremiums
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringIntraCompanyPurchases
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLandscapingServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLaundries
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLaundryCleaningServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLegalServicesAttorneys
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLuggageAndLeatherGoodsStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLumberBuildingMaterialsStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringManualCashDisburse
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMarinasServiceAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMasonryStoneworkAndPlaster
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMassageParlors
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMedicalAndDentalLabs
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMedicalServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMembershipOrganizations
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMensWomensClothingStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMetalServiceCenters
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneous
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousApparelAndAccessoryShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousAutoDealers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousBusinessServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousFoodStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralMerchandise
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousPublishingAndPrinting
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousRecreationServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousRepairShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousSpecialtyRetail
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMobileHomeDealers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotionPictureTheaters
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorFreightCarriersAndTrucking
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorHomesDealers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorVehicleSuppliesAndNewParts
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsAndDealers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsDealers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNewsDealersAndNewsstands
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNonFiMoneyOrders
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNonFiStoredValueCardPurchaseLoad
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNondurableGoods
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNurseriesLawnAndGardenSupplyStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNursingPersonalCare
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOfficeAndCommercialFurniture
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOpticiansEyeglasses
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOptometristsOphthalmologist
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOrthopedicGoodsProstheticDevices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOsteopaths
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPackageStoresBeerWineAndLiquor
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPaintsVarnishesAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringParkingLotsGarages
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPassengerRailways
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPawnShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPetShopsPetFoodAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPetroleumAndPetroleumProducts
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPhotoDeveloping
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPhotographicStudios
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPictureVideoProduction
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPoliticalOrganizations
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPostalServicesGovernmentOnly
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringProfessionalServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPublicWarehousingAndStorage
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringQuickCopyReproAndBlueprint
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRailroads
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRealEstateAgentsAndManagersRentals
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRecordStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRecreationalVehicleRentals
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringReligiousGoodsStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringReligiousOrganizations
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRoofingSidingSheetMetal
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSecretarialSupportServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSecurityBrokersDealers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringServiceStations
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringShoeRepairHatCleaning
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringShoeStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSmallApplianceRepair
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSnowmobileDealers
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSpecialTradeServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSpecialtyCleaning
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportingGoodsStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportingRecreationCamps
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportsAndRidingApparelStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportsClubsFields
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringStampAndCoinStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSwimmingPoolsSales
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTUiTravelGermany
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTailorsAlterations
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTaxPaymentsGovernmentAgencies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTaxPreparationServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTaxicabsLimousines
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTelecommunicationServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTelegraphServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTentAndAwningShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTestingLaboratories
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTheatricalTicketAgencies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTimeshares
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTireRetreadingAndRepair
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTollsBridgeFees
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTouristAttractionsAndExhibits
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTowingServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTrailerParksCampgrounds
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTransportationServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTravelAgenciesTourOperators
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTruckStopIteration
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTruckUtilityTrailerRentals
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTypesettingPlateMakingAndRelatedServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTypewriterStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUniformsCommercialClothing
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUsedMerchandiseAndSecondhandStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUtilities
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVarietyStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVeterinaryServices
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVideoAmusementGameSupplies
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVideoGameArcades
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVideoTapeRentalStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVocationalTradeSchools
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWatchJewelryRepair
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWeldingRepair
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWholesaleClubs
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWigAndToupeeStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWiresMoneyOrders
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWomensAccessoryAndSpecialtyShops
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWomensReadyToWearStores
    | Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWreckingAndSalvageYards
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'AuthorizationControls'BlockedCategories'
    where toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAcRefrigerationRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ac_refrigeration_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAccountingBookkeepingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "accounting_bookkeeping_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAdvertisingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advertising_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAgriculturalCooperative) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "agricultural_cooperative"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAirlinesAirCarriers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airlines_air_carriers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAirportsFlyingFields) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airports_flying_fields"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAmbulanceServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ambulance_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAmusementParksCarnivals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amusement_parks_carnivals"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAntiqueReproductions) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_reproductions"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAntiqueShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAquariums) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "aquariums"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringArchitecturalSurveyingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "architectural_surveying_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringArtDealersAndGalleries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "art_dealers_and_galleries"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringArtistsSupplyAndCraftShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "artists_supply_and_craft_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoAndHomeSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_and_home_supply_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoBodyRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_body_repair_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoPaintShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_paint_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoServiceShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_service_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomatedCashDisburse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_cash_disburse"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomatedFuelDispensers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_fuel_dispensers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomobileAssociations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automobile_associations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomotivePartsAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_parts_and_accessories_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomotiveTireStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_tire_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBailAndBondPayments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bail_and_bond_payments"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBakeries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bakeries"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBandsOrchestras) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bands_orchestras"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBarberAndBeautyShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "barber_and_beauty_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBettingCasinoGambling) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "betting_casino_gambling"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBicycleShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bicycle_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBilliardPoolEstablishments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "billiard_pool_establishments"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBoatDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBoatRentalsAndLeases) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_rentals_and_leases"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBookStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "book_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBooksPeriodicalsAndNewspapers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "books_periodicals_and_newspapers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBowlingAlleys) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bowling_alleys"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBusLines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bus_lines"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBusinessSecretarialSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_secretarial_schools"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBuyingShoppingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "buying_shopping_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cable_satellite_and_other_pay_television_and_radio"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCameraAndPhotographicSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "camera_and_photographic_supply_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCandyNutAndConfectioneryStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "candy_nut_and_confectionery_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersNewUsed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_new_used"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersUsedOnly) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_used_only"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarRentalAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_rental_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarWashes) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_washes"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarpentryServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpentry_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarpetUpholsteryCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpet_upholstery_cleaning"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCaterers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "caterers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charitable_and_social_service_organizations_fundraising"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChemicalsAndAlliedProducts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chemicals_and_allied_products"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChildCareServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "child_care_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChildrensAndInfantsWearStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "childrens_and_infants_wear_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChiropodistsPodiatrists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropodists_podiatrists"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChiropractors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropractors"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCigarStoresAndStands) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cigar_stores_and_stands"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCivicSocialFraternalAssociations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "civic_social_fraternal_associations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCleaningAndMaintenance) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cleaning_and_maintenance"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringClothingRental) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "clothing_rental"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCollegesUniversities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "colleges_universities"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommercialEquipment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_equipment"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommercialFootwear) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_footwear"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommercialPhotographyArtAndGraphics) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_photography_art_and_graphics"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommuterTransportAndFerries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commuter_transport_and_ferries"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerNetworkServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_network_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerProgramming) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_programming"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerSoftwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_software_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputersPeripheralsAndSoftware) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computers_peripherals_and_software"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringConcreteWorkServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "concrete_work_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringConstructionMaterials) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "construction_materials"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringConsultingPublicRelations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "consulting_public_relations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCorrespondenceSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "correspondence_schools"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCosmeticStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cosmetic_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCounselingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "counseling_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCountryClubs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "country_clubs"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCourierServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "courier_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCourtCosts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "court_costs"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCreditReportingAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_reporting_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCruiseLines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cruise_lines"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDairyProductsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dairy_products_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDanceHallStudiosSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dance_hall_studios_schools"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDatingEscortServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dating_escort_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDentistsOrthodontists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dentists_orthodontists"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDepartmentStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "department_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDetectiveAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "detective_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsApplications) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_applications"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsGames) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_games"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsLargeVolume) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_large_volume"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsMedia) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_media"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingCatalogMerchant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_catalog_merchant"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_combination_catalog_and_retail_merchant"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingInboundTelemarketing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_inbound_telemarketing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingInsuranceServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_insurance_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingOther) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_other"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingOutboundTelemarketing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_outbound_telemarketing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingSubscription) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_subscription"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingTravel) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_travel"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDiscountStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDoctors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "doctors"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDoorToDoorSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "door_to_door_sales"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drapery_window_covering_and_upholstery_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDrinkingPlaces) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drinking_places"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDrugStoresAndPharmacies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drug_stores_and_pharmacies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drugs_drug_proprietaries_and_druggist_sundries"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDryCleaners) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dry_cleaners"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDurableGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "durable_goods"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDutyFreeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duty_free_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEatingPlacesRestaurants) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eating_places_restaurants"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEducationalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "educational_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectricRazorStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electric_razor_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectricalPartsAndEquipment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_parts_and_equipment"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectricalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectronicsRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_repair_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectronicsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElementarySecondarySchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "elementary_secondary_schools"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEmploymentTempAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "employment_temp_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEquipmentRental) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "equipment_rental"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringExterminatingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exterminating_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFamilyClothingStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "family_clothing_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFastFoodRestaurants) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fast_food_restaurants"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFinancialInstitutions) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "financial_institutions"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFinesGovernmentAdministrativeEntities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fines_government_administrative_entities"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fireplace_fireplace_screens_and_accessories_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFloorCoveringStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "floor_covering_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFlorists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists_supplies_nursery_stock_and_flowers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFreezerAndLockerMeatProvisioners) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "freezer_and_locker_meat_provisioners"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFuelDealersNonAutomotive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fuel_dealers_non_automotive"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFuneralServicesCrematories) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "funeral_services_crematories"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_home_furnishings_and_equipment_stores_except_appliances"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFurnitureRepairRefinishing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_repair_refinishing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFurriersAndFurShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furriers_and_fur_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGeneralServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "general_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGiftCardNoveltyAndSouvenirShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "gift_card_novelty_and_souvenir_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGlassPaintAndWallpaperStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glass_paint_and_wallpaper_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGlasswareCrystalStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glassware_crystal_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGolfCoursesPublic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "golf_courses_public"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGovernmentServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGroceryStoresSupermarkets) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "grocery_stores_supermarkets"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHardwareEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_equipment_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHardwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHealthAndBeautySpas) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "health_and_beauty_spas"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHearingAidsSalesAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hearing_aids_sales_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHeatingPlumbingAC) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "heating_plumbing_a_c"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHobbyToyAndGameShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hobby_toy_and_game_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHomeSupplyWarehouseStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "home_supply_warehouse_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHospitals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hospitals"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHotelsMotelsAndResorts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hotels_motels_and_resorts"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHouseholdApplianceStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "household_appliance_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringIndustrialSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "industrial_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringInformationRetrievalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "information_retrieval_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringInsuranceDefault) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_default"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringInsuranceUnderwritingPremiums) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_underwriting_premiums"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringIntraCompanyPurchases) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "intra_company_purchases"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "jewelry_stores_watches_clocks_and_silverware_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLandscapingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "landscaping_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLaundries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundries"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLaundryCleaningServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundry_cleaning_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLegalServicesAttorneys) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "legal_services_attorneys"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLuggageAndLeatherGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "luggage_and_leather_goods_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLumberBuildingMaterialsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lumber_building_materials_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringManualCashDisburse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual_cash_disburse"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMarinasServiceAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "marinas_service_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMasonryStoneworkAndPlaster) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masonry_stonework_and_plaster"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMassageParlors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "massage_parlors"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMedicalAndDentalLabs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_and_dental_labs"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_dental_ophthalmic_and_hospital_equipment_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMedicalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMembershipOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "membership_organizations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_and_boys_clothing_and_accessories_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMensWomensClothingStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_womens_clothing_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMetalServiceCenters) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metal_service_centers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneous) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousApparelAndAccessoryShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_apparel_and_accessory_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousAutoDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_auto_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousBusinessServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_business_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousFoodStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_food_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralMerchandise) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_merchandise"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_home_furnishing_specialty_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousPublishingAndPrinting) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_publishing_and_printing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousRecreationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_recreation_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_repair_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousSpecialtyRetail) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_specialty_retail"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMobileHomeDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mobile_home_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotionPictureTheaters) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motion_picture_theaters"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorFreightCarriersAndTrucking) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_freight_carriers_and_trucking"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorHomesDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_homes_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorVehicleSuppliesAndNewParts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_vehicle_supplies_and_new_parts"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsAndDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_and_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "music_stores_musical_instruments_pianos_and_sheet_music"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNewsDealersAndNewsstands) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "news_dealers_and_newsstands"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNonFiMoneyOrders) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_money_orders"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNonFiStoredValueCardPurchaseLoad) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_stored_value_card_purchase_load"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNondurableGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nondurable_goods"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNurseriesLawnAndGardenSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nurseries_lawn_and_garden_supply_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNursingPersonalCare) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nursing_personal_care"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOfficeAndCommercialFurniture) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "office_and_commercial_furniture"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOpticiansEyeglasses) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "opticians_eyeglasses"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOptometristsOphthalmologist) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "optometrists_ophthalmologist"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOrthopedicGoodsProstheticDevices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "orthopedic_goods_prosthetic_devices"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOsteopaths) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "osteopaths"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPackageStoresBeerWineAndLiquor) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "package_stores_beer_wine_and_liquor"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPaintsVarnishesAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "paints_varnishes_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringParkingLotsGarages) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "parking_lots_garages"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPassengerRailways) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "passenger_railways"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPawnShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pawn_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPetShopsPetFoodAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pet_shops_pet_food_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPetroleumAndPetroleumProducts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "petroleum_and_petroleum_products"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPhotoDeveloping) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photo_developing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_photocopy_microfilm_equipment_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPhotographicStudios) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_studios"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPictureVideoProduction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "picture_video_production"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "piece_goods_notions_and_other_dry_goods"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plumbing_heating_equipment_and_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPoliticalOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "political_organizations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPostalServicesGovernmentOnly) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "postal_services_government_only"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "precious_stones_and_metals_watches_and_jewelry"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringProfessionalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "professional_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPublicWarehousingAndStorage) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_warehousing_and_storage"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringQuickCopyReproAndBlueprint) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "quick_copy_repro_and_blueprint"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRailroads) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "railroads"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRealEstateAgentsAndManagersRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "real_estate_agents_and_managers_rentals"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRecordStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "record_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRecreationalVehicleRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "recreational_vehicle_rentals"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringReligiousGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_goods_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringReligiousOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_organizations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRoofingSidingSheetMetal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "roofing_siding_sheet_metal"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSecretarialSupportServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "secretarial_support_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSecurityBrokersDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "security_brokers_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringServiceStations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "service_stations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sewing_needlework_fabric_and_piece_goods_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringShoeRepairHatCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_repair_hat_cleaning"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringShoeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSmallApplianceRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "small_appliance_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSnowmobileDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "snowmobile_dealers"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSpecialTradeServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "special_trade_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSpecialtyCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "specialty_cleaning"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportingGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_goods_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportingRecreationCamps) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_recreation_camps"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportsAndRidingApparelStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_and_riding_apparel_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportsClubsFields) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_clubs_fields"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringStampAndCoinStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stamp_and_coin_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationary_office_supplies_printing_and_writing_paper"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationery_stores_office_and_school_supply_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSwimmingPoolsSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "swimming_pools_sales"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTUiTravelGermany) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "t_ui_travel_germany"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTailorsAlterations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tailors_alterations"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTaxPaymentsGovernmentAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_payments_government_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTaxPreparationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_preparation_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTaxicabsLimousines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "taxicabs_limousines"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_equipment_and_telephone_sales"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTelecommunicationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTelegraphServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telegraph_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTentAndAwningShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tent_and_awning_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTestingLaboratories) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "testing_laboratories"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTheatricalTicketAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "theatrical_ticket_agencies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTimeshares) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "timeshares"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTireRetreadingAndRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tire_retreading_and_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTollsBridgeFees) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tolls_bridge_fees"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTouristAttractionsAndExhibits) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tourist_attractions_and_exhibits"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTowingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "towing_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTrailerParksCampgrounds) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "trailer_parks_campgrounds"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTransportationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transportation_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTravelAgenciesTourOperators) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "travel_agencies_tour_operators"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTruckStopIteration) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_stop_iteration"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTruckUtilityTrailerRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_utility_trailer_rentals"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTypesettingPlateMakingAndRelatedServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typesetting_plate_making_and_related_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTypewriterStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typewriter_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "u_s_federal_government_agencies_or_departments"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUniformsCommercialClothing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "uniforms_commercial_clothing"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUsedMerchandiseAndSecondhandStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "used_merchandise_and_secondhand_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUtilities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "utilities"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVarietyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "variety_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVeterinaryServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "veterinary_services"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVideoAmusementGameSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_amusement_game_supplies"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVideoGameArcades) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_game_arcades"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVideoTapeRentalStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_tape_rental_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVocationalTradeSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "vocational_trade_schools"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWatchJewelryRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "watch_jewelry_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWeldingRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "welding_repair"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWholesaleClubs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wholesale_clubs"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWigAndToupeeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wig_and_toupee_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWiresMoneyOrders) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wires_money_orders"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWomensAccessoryAndSpecialtyShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_accessory_and_specialty_shops"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWomensReadyToWearStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_ready_to_wear_stores"
          toJSON (Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWreckingAndSalvageYards) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wrecking_and_salvage_yards"
instance Data.Aeson.FromJSON Issuing'cardCardholder'AuthorizationControls'BlockedCategories'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ac_refrigeration_repair")
                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAcRefrigerationRepair
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "accounting_bookkeeping_services")
                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAccountingBookkeepingServices
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advertising_services")
                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAdvertisingServices
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "agricultural_cooperative")
                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAgriculturalCooperative
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airlines_air_carriers")
                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAirlinesAirCarriers
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airports_flying_fields")
                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAirportsFlyingFields
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ambulance_services")
                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAmbulanceServices
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amusement_parks_carnivals")
                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAmusementParksCarnivals
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_reproductions")
                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAntiqueReproductions
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_shops")
                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAntiqueShops
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "aquariums")
                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAquariums
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "architectural_surveying_services")
                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringArchitecturalSurveyingServices
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "art_dealers_and_galleries")
                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringArtDealersAndGalleries
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "artists_supply_and_craft_shops")
                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringArtistsSupplyAndCraftShops
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_and_home_supply_stores")
                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoAndHomeSupplyStores
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_body_repair_shops")
                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoBodyRepairShops
                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_paint_shops")
                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoPaintShops
                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_service_shops")
                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutoServiceShops
                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_cash_disburse")
                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomatedCashDisburse
                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_fuel_dispensers")
                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomatedFuelDispensers
                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automobile_associations")
                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomobileAssociations
                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_parts_and_accessories_stores")
                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomotivePartsAndAccessoriesStores
                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_tire_stores")
                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringAutomotiveTireStores
                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bail_and_bond_payments")
                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBailAndBondPayments
                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bakeries")
                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBakeries
                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bands_orchestras")
                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBandsOrchestras
                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "barber_and_beauty_shops")
                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBarberAndBeautyShops
                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "betting_casino_gambling")
                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBettingCasinoGambling
                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bicycle_shops")
                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBicycleShops
                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "billiard_pool_establishments")
                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBilliardPoolEstablishments
                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_dealers")
                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBoatDealers
                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_rentals_and_leases")
                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBoatRentalsAndLeases
                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "book_stores")
                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBookStores
                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "books_periodicals_and_newspapers")
                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBooksPeriodicalsAndNewspapers
                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bowling_alleys")
                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBowlingAlleys
                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bus_lines")
                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBusLines
                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_secretarial_schools")
                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBusinessSecretarialSchools
                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "buying_shopping_services")
                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringBuyingShoppingServices
                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cable_satellite_and_other_pay_television_and_radio")
                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio
                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "camera_and_photographic_supply_stores")
                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCameraAndPhotographicSupplyStores
                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "candy_nut_and_confectionery_stores")
                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCandyNutAndConfectioneryStores
                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_new_used")
                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersNewUsed
                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_used_only")
                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersUsedOnly
                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_rental_agencies")
                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarRentalAgencies
                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_washes")
                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarWashes
                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpentry_services")
                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarpentryServices
                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpet_upholstery_cleaning")
                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCarpetUpholsteryCleaning
                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "caterers")
                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCaterers
                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charitable_and_social_service_organizations_fundraising")
                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising
                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chemicals_and_allied_products")
                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChemicalsAndAlliedProducts
                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "child_care_services")
                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChildCareServices
                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "childrens_and_infants_wear_stores")
                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChildrensAndInfantsWearStores
                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropodists_podiatrists")
                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChiropodistsPodiatrists
                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropractors")
                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringChiropractors
                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cigar_stores_and_stands")
                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCigarStoresAndStands
                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "civic_social_fraternal_associations")
                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCivicSocialFraternalAssociations
                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cleaning_and_maintenance")
                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCleaningAndMaintenance
                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "clothing_rental")
                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringClothingRental
                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "colleges_universities")
                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCollegesUniversities
                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_equipment")
                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommercialEquipment
                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_footwear")
                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommercialFootwear
                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_photography_art_and_graphics")
                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommercialPhotographyArtAndGraphics
                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commuter_transport_and_ferries")
                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCommuterTransportAndFerries
                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_network_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerNetworkServices
                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_programming")
                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerProgramming
                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_software_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputerSoftwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computers_peripherals_and_software")
                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringComputersPeripheralsAndSoftware
                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "concrete_work_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringConcreteWorkServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "construction_materials")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringConstructionMaterials
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "consulting_public_relations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringConsultingPublicRelations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "correspondence_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCorrespondenceSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cosmetic_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCosmeticStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "counseling_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCounselingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "country_clubs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCountryClubs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "courier_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCourierServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "court_costs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCourtCosts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_reporting_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCreditReportingAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cruise_lines")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringCruiseLines
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dairy_products_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDairyProductsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dance_hall_studios_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDanceHallStudiosSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dating_escort_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDatingEscortServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dentists_orthodontists")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDentistsOrthodontists
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "department_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDepartmentStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "detective_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDetectiveAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_applications")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsApplications
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_games")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsGames
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_large_volume")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsLargeVolume
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_media")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDigitalGoodsMedia
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_catalog_merchant")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingCatalogMerchant
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_combination_catalog_and_retail_merchant")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_inbound_telemarketing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingInboundTelemarketing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_insurance_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingInsuranceServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_other")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingOther
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_outbound_telemarketing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingOutboundTelemarketing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_subscription")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingSubscription
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_travel")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDirectMarketingTravel
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDiscountStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "doctors")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDoctors
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "door_to_door_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDoorToDoorSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drapery_window_covering_and_upholstery_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drinking_places")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDrinkingPlaces
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drug_stores_and_pharmacies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDrugStoresAndPharmacies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drugs_drug_proprietaries_and_druggist_sundries")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dry_cleaners")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDryCleaners
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "durable_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDurableGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duty_free_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringDutyFreeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eating_places_restaurants")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEatingPlacesRestaurants
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "educational_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEducationalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electric_razor_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectricRazorStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_parts_and_equipment")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectricalPartsAndEquipment
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectricalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_repair_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectronicsRepairShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElectronicsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "elementary_secondary_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringElementarySecondarySchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "employment_temp_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEmploymentTempAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "equipment_rental")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringEquipmentRental
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exterminating_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringExterminatingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "family_clothing_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFamilyClothingStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fast_food_restaurants")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFastFoodRestaurants
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "financial_institutions")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFinancialInstitutions
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fines_government_administrative_entities")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFinesGovernmentAdministrativeEntities
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fireplace_fireplace_screens_and_accessories_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "floor_covering_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFloorCoveringStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFlorists
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists_supplies_nursery_stock_and_flowers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "freezer_and_locker_meat_provisioners")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFreezerAndLockerMeatProvisioners
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fuel_dealers_non_automotive")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFuelDealersNonAutomotive
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "funeral_services_crematories")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFuneralServicesCrematories
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_home_furnishings_and_equipment_stores_except_appliances")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_repair_refinishing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFurnitureRepairRefinishing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furriers_and_fur_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringFurriersAndFurShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "general_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGeneralServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "gift_card_novelty_and_souvenir_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGiftCardNoveltyAndSouvenirShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glass_paint_and_wallpaper_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGlassPaintAndWallpaperStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glassware_crystal_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGlasswareCrystalStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "golf_courses_public")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGolfCoursesPublic
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGovernmentServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "grocery_stores_supermarkets")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringGroceryStoresSupermarkets
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHardwareEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHardwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "health_and_beauty_spas")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHealthAndBeautySpas
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hearing_aids_sales_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHearingAidsSalesAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "heating_plumbing_a_c")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHeatingPlumbingAC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hobby_toy_and_game_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHobbyToyAndGameShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "home_supply_warehouse_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHomeSupplyWarehouseStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hospitals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHospitals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hotels_motels_and_resorts")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHotelsMotelsAndResorts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "household_appliance_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringHouseholdApplianceStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "industrial_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringIndustrialSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "information_retrieval_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringInformationRetrievalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_default")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringInsuranceDefault
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_underwriting_premiums")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringInsuranceUnderwritingPremiums
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "intra_company_purchases")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringIntraCompanyPurchases
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "jewelry_stores_watches_clocks_and_silverware_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "landscaping_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLandscapingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundries")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLaundries
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundry_cleaning_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLaundryCleaningServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "legal_services_attorneys")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLegalServicesAttorneys
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "luggage_and_leather_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLuggageAndLeatherGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lumber_building_materials_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringLumberBuildingMaterialsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual_cash_disburse")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringManualCashDisburse
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "marinas_service_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMarinasServiceAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masonry_stonework_and_plaster")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMasonryStoneworkAndPlaster
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "massage_parlors")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMassageParlors
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_and_dental_labs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMedicalAndDentalLabs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_dental_ophthalmic_and_hospital_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMedicalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "membership_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMembershipOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_and_boys_clothing_and_accessories_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_womens_clothing_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMensWomensClothingStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metal_service_centers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMetalServiceCenters
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneous
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_apparel_and_accessory_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousApparelAndAccessoryShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_auto_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousAutoDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_business_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousBusinessServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_food_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousFoodStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_merchandise")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralMerchandise
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_home_furnishing_specialty_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_publishing_and_printing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousPublishingAndPrinting
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_recreation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousRecreationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_repair_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousRepairShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_specialty_retail")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMiscellaneousSpecialtyRetail
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mobile_home_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMobileHomeDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motion_picture_theaters")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotionPictureTheaters
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_freight_carriers_and_trucking")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorFreightCarriersAndTrucking
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_homes_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorHomesDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_vehicle_supplies_and_new_parts")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorVehicleSuppliesAndNewParts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_and_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsAndDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "music_stores_musical_instruments_pianos_and_sheet_music")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "news_dealers_and_newsstands")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNewsDealersAndNewsstands
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_money_orders")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNonFiMoneyOrders
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_stored_value_card_purchase_load")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNonFiStoredValueCardPurchaseLoad
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nondurable_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNondurableGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nurseries_lawn_and_garden_supply_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNurseriesLawnAndGardenSupplyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nursing_personal_care")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringNursingPersonalCare
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "office_and_commercial_furniture")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOfficeAndCommercialFurniture
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "opticians_eyeglasses")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOpticiansEyeglasses
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "optometrists_ophthalmologist")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOptometristsOphthalmologist
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "orthopedic_goods_prosthetic_devices")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOrthopedicGoodsProstheticDevices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "osteopaths")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringOsteopaths
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "package_stores_beer_wine_and_liquor")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPackageStoresBeerWineAndLiquor
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "paints_varnishes_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPaintsVarnishesAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "parking_lots_garages")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringParkingLotsGarages
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "passenger_railways")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPassengerRailways
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pawn_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPawnShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pet_shops_pet_food_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPetShopsPetFoodAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "petroleum_and_petroleum_products")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPetroleumAndPetroleumProducts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photo_developing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPhotoDeveloping
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_photocopy_microfilm_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_studios")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPhotographicStudios
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "picture_video_production")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPictureVideoProduction
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "piece_goods_notions_and_other_dry_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plumbing_heating_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "political_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPoliticalOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "postal_services_government_only")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPostalServicesGovernmentOnly
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "precious_stones_and_metals_watches_and_jewelry")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "professional_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringProfessionalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_warehousing_and_storage")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringPublicWarehousingAndStorage
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "quick_copy_repro_and_blueprint")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringQuickCopyReproAndBlueprint
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "railroads")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRailroads
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "real_estate_agents_and_managers_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRealEstateAgentsAndManagersRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "record_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRecordStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "recreational_vehicle_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRecreationalVehicleRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringReligiousGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringReligiousOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "roofing_siding_sheet_metal")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringRoofingSidingSheetMetal
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "secretarial_support_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSecretarialSupportServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "security_brokers_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSecurityBrokersDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "service_stations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringServiceStations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sewing_needlework_fabric_and_piece_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_repair_hat_cleaning")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringShoeRepairHatCleaning
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringShoeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "small_appliance_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSmallApplianceRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "snowmobile_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSnowmobileDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "special_trade_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSpecialTradeServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "specialty_cleaning")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSpecialtyCleaning
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportingGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_recreation_camps")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportingRecreationCamps
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_and_riding_apparel_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportsAndRidingApparelStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_clubs_fields")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSportsClubsFields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stamp_and_coin_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringStampAndCoinStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationary_office_supplies_printing_and_writing_paper")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationery_stores_office_and_school_supply_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "swimming_pools_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringSwimmingPoolsSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "t_ui_travel_germany")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTUiTravelGermany
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tailors_alterations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTailorsAlterations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_payments_government_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTaxPaymentsGovernmentAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_preparation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTaxPreparationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "taxicabs_limousines")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTaxicabsLimousines
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_equipment_and_telephone_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTelecommunicationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telegraph_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTelegraphServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tent_and_awning_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTentAndAwningShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "testing_laboratories")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTestingLaboratories
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "theatrical_ticket_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTheatricalTicketAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "timeshares")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTimeshares
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tire_retreading_and_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTireRetreadingAndRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tolls_bridge_fees")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTollsBridgeFees
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tourist_attractions_and_exhibits")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTouristAttractionsAndExhibits
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "towing_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTowingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "trailer_parks_campgrounds")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTrailerParksCampgrounds
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transportation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTransportationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "travel_agencies_tour_operators")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTravelAgenciesTourOperators
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_stop_iteration")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTruckStopIteration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_utility_trailer_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTruckUtilityTrailerRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typesetting_plate_making_and_related_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTypesettingPlateMakingAndRelatedServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typewriter_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringTypewriterStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "u_s_federal_government_agencies_or_departments")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "uniforms_commercial_clothing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUniformsCommercialClothing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "used_merchandise_and_secondhand_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUsedMerchandiseAndSecondhandStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "utilities")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringUtilities
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "variety_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVarietyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "veterinary_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVeterinaryServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_amusement_game_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVideoAmusementGameSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_game_arcades")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVideoGameArcades
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_tape_rental_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVideoTapeRentalStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "vocational_trade_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringVocationalTradeSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "watch_jewelry_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWatchJewelryRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "welding_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWeldingRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wholesale_clubs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWholesaleClubs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wig_and_toupee_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWigAndToupeeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wires_money_orders")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWiresMoneyOrders
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_accessory_and_specialty_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWomensAccessoryAndSpecialtyShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_ready_to_wear_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWomensReadyToWearStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wrecking_and_salvage_yards")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumStringWreckingAndSalvageYards
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else Issuing'cardCardholder'AuthorizationControls'BlockedCategories'EnumOther val)
-- | Defines the data type for the schema issuing.cardCardholder\'Company\'
-- 
-- Additional information about a \\\`business_entity\\\` cardholder.
data Issuing'cardCardholder'Company' = Issuing'cardCardholder'Company' {
  -- | tax_id_provided: Whether the company\'s business ID number was provided.
  issuing'cardCardholder'Company'TaxIdProvided :: (GHC.Maybe.Maybe GHC.Types.Bool)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Company'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "tax_id_provided" (issuing'cardCardholder'Company'TaxIdProvided obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "tax_id_provided" (issuing'cardCardholder'Company'TaxIdProvided obj))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardCardholder'Company'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardCardholder'Company'" (\obj -> GHC.Base.pure Issuing'cardCardholder'Company' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_id_provided"))
-- | Defines the data type for the schema issuing.cardCardholder\'Individual\'
-- 
-- Additional information about an \\\`individual\\\` cardholder.
data Issuing'cardCardholder'Individual' = Issuing'cardCardholder'Individual' {
  -- | dob: The date of birth of this cardholder.
  issuing'cardCardholder'Individual'Dob :: (GHC.Maybe.Maybe Issuing'cardCardholder'Individual'Dob')
  -- | first_name: The first name of this cardholder.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardCardholder'Individual'FirstName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | last_name: The last name of this cardholder.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardCardholder'Individual'LastName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verification: Government-issued ID document for this cardholder.
  , issuing'cardCardholder'Individual'Verification :: (GHC.Maybe.Maybe Issuing'cardCardholder'Individual'Verification')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Individual'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dob" (issuing'cardCardholder'Individual'Dob obj) : (Data.Aeson..=) "first_name" (issuing'cardCardholder'Individual'FirstName obj) : (Data.Aeson..=) "last_name" (issuing'cardCardholder'Individual'LastName obj) : (Data.Aeson..=) "verification" (issuing'cardCardholder'Individual'Verification obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dob" (issuing'cardCardholder'Individual'Dob obj) GHC.Base.<> ((Data.Aeson..=) "first_name" (issuing'cardCardholder'Individual'FirstName obj) GHC.Base.<> ((Data.Aeson..=) "last_name" (issuing'cardCardholder'Individual'LastName obj) GHC.Base.<> (Data.Aeson..=) "verification" (issuing'cardCardholder'Individual'Verification obj))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardCardholder'Individual'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardCardholder'Individual'" (\obj -> (((GHC.Base.pure Issuing'cardCardholder'Individual' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dob")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "first_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verification"))
-- | Defines the data type for the schema issuing.cardCardholder\'Individual\'Dob\'
-- 
-- The date of birth of this cardholder.
data Issuing'cardCardholder'Individual'Dob' = Issuing'cardCardholder'Individual'Dob' {
  -- | day: The day of birth, between 1 and 31.
  issuing'cardCardholder'Individual'Dob'Day :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | month: The month of birth, between 1 and 12.
  , issuing'cardCardholder'Individual'Dob'Month :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | year: The four-digit year of birth.
  , issuing'cardCardholder'Individual'Dob'Year :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Individual'Dob'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "day" (issuing'cardCardholder'Individual'Dob'Day obj) : (Data.Aeson..=) "month" (issuing'cardCardholder'Individual'Dob'Month obj) : (Data.Aeson..=) "year" (issuing'cardCardholder'Individual'Dob'Year obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "day" (issuing'cardCardholder'Individual'Dob'Day obj) GHC.Base.<> ((Data.Aeson..=) "month" (issuing'cardCardholder'Individual'Dob'Month obj) GHC.Base.<> (Data.Aeson..=) "year" (issuing'cardCardholder'Individual'Dob'Year obj)))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardCardholder'Individual'Dob'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardCardholder'Individual'Dob'" (\obj -> ((GHC.Base.pure Issuing'cardCardholder'Individual'Dob' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "day")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "year"))
-- | Defines the data type for the schema issuing.cardCardholder\'Individual\'Verification\'
-- 
-- Government-issued ID document for this cardholder.
data Issuing'cardCardholder'Individual'Verification' = Issuing'cardCardholder'Individual'Verification' {
  -- | document: An identifying document, either a passport or local ID card.
  issuing'cardCardholder'Individual'Verification'Document :: (GHC.Maybe.Maybe Issuing'cardCardholder'Individual'Verification'Document')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Individual'Verification'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "document" (issuing'cardCardholder'Individual'Verification'Document obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "document" (issuing'cardCardholder'Individual'Verification'Document obj))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardCardholder'Individual'Verification'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardCardholder'Individual'Verification'" (\obj -> GHC.Base.pure Issuing'cardCardholder'Individual'Verification' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "document"))
-- | Defines the data type for the schema issuing.cardCardholder\'Individual\'Verification\'Document\'
-- 
-- An identifying document, either a passport or local ID card.
data Issuing'cardCardholder'Individual'Verification'Document' = Issuing'cardCardholder'Individual'Verification'Document' {
  -- | back: The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  issuing'cardCardholder'Individual'Verification'Document'Back :: (GHC.Maybe.Maybe Issuing'cardCardholder'Individual'Verification'Document'Back'Variants)
  -- | front: The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  , issuing'cardCardholder'Individual'Verification'Document'Front :: (GHC.Maybe.Maybe Issuing'cardCardholder'Individual'Verification'Document'Front'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Individual'Verification'Document'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "back" (issuing'cardCardholder'Individual'Verification'Document'Back obj) : (Data.Aeson..=) "front" (issuing'cardCardholder'Individual'Verification'Document'Front obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "back" (issuing'cardCardholder'Individual'Verification'Document'Back obj) GHC.Base.<> (Data.Aeson..=) "front" (issuing'cardCardholder'Individual'Verification'Document'Front obj))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardCardholder'Individual'Verification'Document'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardCardholder'Individual'Verification'Document'" (\obj -> (GHC.Base.pure Issuing'cardCardholder'Individual'Verification'Document' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "back")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "front"))
-- | Define the one-of schema issuing.cardCardholder\'Individual\'Verification\'Document\'Back\'
-- 
-- The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data Issuing'cardCardholder'Individual'Verification'Document'Back'Variants
    = Issuing'cardCardholder'Individual'Verification'Document'Back'File File
    | Issuing'cardCardholder'Individual'Verification'Document'Back'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Individual'Verification'Document'Back'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'cardCardholder'Individual'Verification'Document'Back'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema issuing.cardCardholder\'Individual\'Verification\'Document\'Front\'
-- 
-- The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data Issuing'cardCardholder'Individual'Verification'Document'Front'Variants
    = Issuing'cardCardholder'Individual'Verification'Document'Front'File File
    | Issuing'cardCardholder'Individual'Verification'Document'Front'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Individual'Verification'Document'Front'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'cardCardholder'Individual'Verification'Document'Front'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing.cardCardholder\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data Issuing'cardCardholder'Metadata' = Issuing'cardCardholder'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardCardholder'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardCardholder'Metadata'" (\obj -> GHC.Base.pure Issuing'cardCardholder'Metadata')
-- | Defines the enum schema issuing.cardCardholder\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Issuing'cardCardholder'Object'
    = Issuing'cardCardholder'Object'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardCardholder'Object'EnumTyped GHC.Base.String
    | Issuing'cardCardholder'Object'EnumStringIssuing'cardholder
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Object'
    where toJSON (Issuing'cardCardholder'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardCardholder'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardCardholder'Object'EnumStringIssuing'cardholder) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.cardholder"
instance Data.Aeson.FromJSON Issuing'cardCardholder'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.cardholder")
                                          then Issuing'cardCardholder'Object'EnumStringIssuing'cardholder
                                          else Issuing'cardCardholder'Object'EnumOther val)
-- | Defines the enum schema issuing.cardCardholder\'Status\'
-- 
-- Specifies whether to permit authorizations on this cardholder\'s cards.
data Issuing'cardCardholder'Status'
    = Issuing'cardCardholder'Status'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardCardholder'Status'EnumTyped GHC.Base.String
    | Issuing'cardCardholder'Status'EnumStringActive
    | Issuing'cardCardholder'Status'EnumStringBlocked
    | Issuing'cardCardholder'Status'EnumStringInactive
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Status'
    where toJSON (Issuing'cardCardholder'Status'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardCardholder'Status'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardCardholder'Status'EnumStringActive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active"
          toJSON (Issuing'cardCardholder'Status'EnumStringBlocked) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "blocked"
          toJSON (Issuing'cardCardholder'Status'EnumStringInactive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "inactive"
instance Data.Aeson.FromJSON Issuing'cardCardholder'Status'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active")
                                          then Issuing'cardCardholder'Status'EnumStringActive
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "blocked")
                                                then Issuing'cardCardholder'Status'EnumStringBlocked
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "inactive")
                                                      then Issuing'cardCardholder'Status'EnumStringInactive
                                                      else Issuing'cardCardholder'Status'EnumOther val)
-- | Defines the enum schema issuing.cardCardholder\'Type\'
-- 
-- One of \`individual\` or \`business_entity\`.
data Issuing'cardCardholder'Type'
    = Issuing'cardCardholder'Type'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardCardholder'Type'EnumTyped GHC.Base.String
    | Issuing'cardCardholder'Type'EnumStringBusinessEntity
    | Issuing'cardCardholder'Type'EnumStringIndividual
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardCardholder'Type'
    where toJSON (Issuing'cardCardholder'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardCardholder'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardCardholder'Type'EnumStringBusinessEntity) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_entity"
          toJSON (Issuing'cardCardholder'Type'EnumStringIndividual) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "individual"
instance Data.Aeson.FromJSON Issuing'cardCardholder'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_entity")
                                          then Issuing'cardCardholder'Type'EnumStringBusinessEntity
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "individual")
                                                then Issuing'cardCardholder'Type'EnumStringIndividual
                                                else Issuing'cardCardholder'Type'EnumOther val)
-- | Defines the data type for the schema issuing.cardMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data Issuing'cardMetadata' = Issuing'cardMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardMetadata'" (\obj -> GHC.Base.pure Issuing'cardMetadata')
-- | Defines the enum schema issuing.cardObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Issuing'cardObject'
    = Issuing'cardObject'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardObject'EnumTyped GHC.Base.String
    | Issuing'cardObject'EnumStringIssuing'card
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardObject'
    where toJSON (Issuing'cardObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardObject'EnumStringIssuing'card) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.card"
instance Data.Aeson.FromJSON Issuing'cardObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.card")
                                          then Issuing'cardObject'EnumStringIssuing'card
                                          else Issuing'cardObject'EnumOther val)
-- | Defines the data type for the schema issuing.cardPin\'
-- 
-- Metadata about the PIN on the card.
data Issuing'cardPin' = Issuing'cardPin' {
  -- | status: Wether the PIN will be accepted or not.
  issuing'cardPin'Status :: (GHC.Maybe.Maybe Issuing'cardPin'Status')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardPin'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "status" (issuing'cardPin'Status obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "status" (issuing'cardPin'Status obj))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardPin'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardPin'" (\obj -> GHC.Base.pure Issuing'cardPin' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status"))
-- | Defines the enum schema issuing.cardPin\'Status\'
-- 
-- Wether the PIN will be accepted or not.
data Issuing'cardPin'Status'
    = Issuing'cardPin'Status'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardPin'Status'EnumTyped GHC.Base.String
    | Issuing'cardPin'Status'EnumStringActive
    | Issuing'cardPin'Status'EnumStringBlocked
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardPin'Status'
    where toJSON (Issuing'cardPin'Status'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardPin'Status'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardPin'Status'EnumStringActive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active"
          toJSON (Issuing'cardPin'Status'EnumStringBlocked) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "blocked"
instance Data.Aeson.FromJSON Issuing'cardPin'Status'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active")
                                          then Issuing'cardPin'Status'EnumStringActive
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "blocked")
                                                then Issuing'cardPin'Status'EnumStringBlocked
                                                else Issuing'cardPin'Status'EnumOther val)
-- | Define the one-of schema issuing.cardReplacement_for\'
-- 
-- The card this card replaces, if any.
data Issuing'cardReplacementFor'Variants
    = Issuing'cardReplacementFor'Issuing'card Issuing'card
    | Issuing'cardReplacementFor'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'cardReplacementFor'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'cardReplacementFor'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema issuing.cardReplacement_reason\'
-- 
-- The reason why the previous card needed to be replaced.
data Issuing'cardReplacementReason'
    = Issuing'cardReplacementReason'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardReplacementReason'EnumTyped GHC.Base.String
    | Issuing'cardReplacementReason'EnumStringDamage
    | Issuing'cardReplacementReason'EnumStringExpiration
    | Issuing'cardReplacementReason'EnumStringLoss
    | Issuing'cardReplacementReason'EnumStringTheft
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardReplacementReason'
    where toJSON (Issuing'cardReplacementReason'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardReplacementReason'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardReplacementReason'EnumStringDamage) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "damage"
          toJSON (Issuing'cardReplacementReason'EnumStringExpiration) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "expiration"
          toJSON (Issuing'cardReplacementReason'EnumStringLoss) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "loss"
          toJSON (Issuing'cardReplacementReason'EnumStringTheft) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "theft"
instance Data.Aeson.FromJSON Issuing'cardReplacementReason'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "damage")
                                          then Issuing'cardReplacementReason'EnumStringDamage
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "expiration")
                                                then Issuing'cardReplacementReason'EnumStringExpiration
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "loss")
                                                      then Issuing'cardReplacementReason'EnumStringLoss
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "theft")
                                                            then Issuing'cardReplacementReason'EnumStringTheft
                                                            else Issuing'cardReplacementReason'EnumOther val)
-- | Defines the data type for the schema issuing.cardShipping\'
-- 
-- Where and how the card will be shipped.
data Issuing'cardShipping' = Issuing'cardShipping' {
  -- | address: 
  issuing'cardShipping'Address :: (GHC.Maybe.Maybe Address)
  -- | carrier: The delivery company that shipped a card.
  , issuing'cardShipping'Carrier :: (GHC.Maybe.Maybe Issuing'cardShipping'Carrier')
  -- | eta: A unix timestamp representing a best estimate of when the card will be delivered.
  , issuing'cardShipping'Eta :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | name: Recipient name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardShipping'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | speed: Shipment speed.
  , issuing'cardShipping'Speed :: (GHC.Maybe.Maybe Issuing'cardShipping'Speed')
  -- | status: The delivery status of the card.
  , issuing'cardShipping'Status :: (GHC.Maybe.Maybe Issuing'cardShipping'Status')
  -- | tracking_number: A tracking number for a card shipment.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardShipping'TrackingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | tracking_url: A link to the shipping carrier\'s site where you can view detailed information about a card shipment.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardShipping'TrackingUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | type: Packaging options.
  , issuing'cardShipping'Type :: (GHC.Maybe.Maybe Issuing'cardShipping'Type')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardShipping'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (issuing'cardShipping'Address obj) : (Data.Aeson..=) "carrier" (issuing'cardShipping'Carrier obj) : (Data.Aeson..=) "eta" (issuing'cardShipping'Eta obj) : (Data.Aeson..=) "name" (issuing'cardShipping'Name obj) : (Data.Aeson..=) "speed" (issuing'cardShipping'Speed obj) : (Data.Aeson..=) "status" (issuing'cardShipping'Status obj) : (Data.Aeson..=) "tracking_number" (issuing'cardShipping'TrackingNumber obj) : (Data.Aeson..=) "tracking_url" (issuing'cardShipping'TrackingUrl obj) : (Data.Aeson..=) "type" (issuing'cardShipping'Type obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (issuing'cardShipping'Address obj) GHC.Base.<> ((Data.Aeson..=) "carrier" (issuing'cardShipping'Carrier obj) GHC.Base.<> ((Data.Aeson..=) "eta" (issuing'cardShipping'Eta obj) GHC.Base.<> ((Data.Aeson..=) "name" (issuing'cardShipping'Name obj) GHC.Base.<> ((Data.Aeson..=) "speed" (issuing'cardShipping'Speed obj) GHC.Base.<> ((Data.Aeson..=) "status" (issuing'cardShipping'Status obj) GHC.Base.<> ((Data.Aeson..=) "tracking_number" (issuing'cardShipping'TrackingNumber obj) GHC.Base.<> ((Data.Aeson..=) "tracking_url" (issuing'cardShipping'TrackingUrl obj) GHC.Base.<> (Data.Aeson..=) "type" (issuing'cardShipping'Type obj)))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardShipping'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardShipping'" (\obj -> ((((((((GHC.Base.pure Issuing'cardShipping' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "carrier")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eta")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "speed")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tracking_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tracking_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the enum schema issuing.cardShipping\'Carrier\'
-- 
-- The delivery company that shipped a card.
data Issuing'cardShipping'Carrier'
    = Issuing'cardShipping'Carrier'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardShipping'Carrier'EnumTyped GHC.Base.String
    | Issuing'cardShipping'Carrier'EnumStringFedex
    | Issuing'cardShipping'Carrier'EnumStringUsps
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardShipping'Carrier'
    where toJSON (Issuing'cardShipping'Carrier'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardShipping'Carrier'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardShipping'Carrier'EnumStringFedex) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fedex"
          toJSON (Issuing'cardShipping'Carrier'EnumStringUsps) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "usps"
instance Data.Aeson.FromJSON Issuing'cardShipping'Carrier'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fedex")
                                          then Issuing'cardShipping'Carrier'EnumStringFedex
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "usps")
                                                then Issuing'cardShipping'Carrier'EnumStringUsps
                                                else Issuing'cardShipping'Carrier'EnumOther val)
-- | Defines the enum schema issuing.cardShipping\'Speed\'
-- 
-- Shipment speed.
data Issuing'cardShipping'Speed'
    = Issuing'cardShipping'Speed'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardShipping'Speed'EnumTyped GHC.Base.String
    | Issuing'cardShipping'Speed'EnumStringExpress
    | Issuing'cardShipping'Speed'EnumStringOvernight
    | Issuing'cardShipping'Speed'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardShipping'Speed'
    where toJSON (Issuing'cardShipping'Speed'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardShipping'Speed'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardShipping'Speed'EnumStringExpress) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "express"
          toJSON (Issuing'cardShipping'Speed'EnumStringOvernight) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "overnight"
          toJSON (Issuing'cardShipping'Speed'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON Issuing'cardShipping'Speed'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "express")
                                          then Issuing'cardShipping'Speed'EnumStringExpress
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "overnight")
                                                then Issuing'cardShipping'Speed'EnumStringOvernight
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                      then Issuing'cardShipping'Speed'EnumStringStandard
                                                      else Issuing'cardShipping'Speed'EnumOther val)
-- | Defines the enum schema issuing.cardShipping\'Status\'
-- 
-- The delivery status of the card.
data Issuing'cardShipping'Status'
    = Issuing'cardShipping'Status'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardShipping'Status'EnumTyped GHC.Base.String
    | Issuing'cardShipping'Status'EnumStringCanceled
    | Issuing'cardShipping'Status'EnumStringDelivered
    | Issuing'cardShipping'Status'EnumStringFailure
    | Issuing'cardShipping'Status'EnumStringPending
    | Issuing'cardShipping'Status'EnumStringReturned
    | Issuing'cardShipping'Status'EnumStringShipped
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardShipping'Status'
    where toJSON (Issuing'cardShipping'Status'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardShipping'Status'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardShipping'Status'EnumStringCanceled) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled"
          toJSON (Issuing'cardShipping'Status'EnumStringDelivered) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "delivered"
          toJSON (Issuing'cardShipping'Status'EnumStringFailure) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "failure"
          toJSON (Issuing'cardShipping'Status'EnumStringPending) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pending"
          toJSON (Issuing'cardShipping'Status'EnumStringReturned) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "returned"
          toJSON (Issuing'cardShipping'Status'EnumStringShipped) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shipped"
instance Data.Aeson.FromJSON Issuing'cardShipping'Status'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled")
                                          then Issuing'cardShipping'Status'EnumStringCanceled
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "delivered")
                                                then Issuing'cardShipping'Status'EnumStringDelivered
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "failure")
                                                      then Issuing'cardShipping'Status'EnumStringFailure
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pending")
                                                            then Issuing'cardShipping'Status'EnumStringPending
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "returned")
                                                                  then Issuing'cardShipping'Status'EnumStringReturned
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shipped")
                                                                        then Issuing'cardShipping'Status'EnumStringShipped
                                                                        else Issuing'cardShipping'Status'EnumOther val)
-- | Defines the enum schema issuing.cardShipping\'Type\'
-- 
-- Packaging options.
data Issuing'cardShipping'Type'
    = Issuing'cardShipping'Type'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardShipping'Type'EnumTyped GHC.Base.String
    | Issuing'cardShipping'Type'EnumStringBulk
    | Issuing'cardShipping'Type'EnumStringIndividual
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardShipping'Type'
    where toJSON (Issuing'cardShipping'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardShipping'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardShipping'Type'EnumStringBulk) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bulk"
          toJSON (Issuing'cardShipping'Type'EnumStringIndividual) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "individual"
instance Data.Aeson.FromJSON Issuing'cardShipping'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bulk")
                                          then Issuing'cardShipping'Type'EnumStringBulk
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "individual")
                                                then Issuing'cardShipping'Type'EnumStringIndividual
                                                else Issuing'cardShipping'Type'EnumOther val)
-- | Defines the enum schema issuing.cardStatus\'
-- 
-- Whether authorizations can be approved on this card.
data Issuing'cardStatus'
    = Issuing'cardStatus'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardStatus'EnumTyped GHC.Base.String
    | Issuing'cardStatus'EnumStringActive
    | Issuing'cardStatus'EnumStringCanceled
    | Issuing'cardStatus'EnumStringInactive
    | Issuing'cardStatus'EnumStringLost
    | Issuing'cardStatus'EnumStringStolen
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardStatus'
    where toJSON (Issuing'cardStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardStatus'EnumStringActive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active"
          toJSON (Issuing'cardStatus'EnumStringCanceled) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled"
          toJSON (Issuing'cardStatus'EnumStringInactive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "inactive"
          toJSON (Issuing'cardStatus'EnumStringLost) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lost"
          toJSON (Issuing'cardStatus'EnumStringStolen) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stolen"
instance Data.Aeson.FromJSON Issuing'cardStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active")
                                          then Issuing'cardStatus'EnumStringActive
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled")
                                                then Issuing'cardStatus'EnumStringCanceled
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "inactive")
                                                      then Issuing'cardStatus'EnumStringInactive
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lost")
                                                            then Issuing'cardStatus'EnumStringLost
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stolen")
                                                                  then Issuing'cardStatus'EnumStringStolen
                                                                  else Issuing'cardStatus'EnumOther val)
-- | Defines the enum schema issuing.cardType\'
-- 
-- The type of the card.
data Issuing'cardType'
    = Issuing'cardType'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardType'EnumTyped GHC.Base.String
    | Issuing'cardType'EnumStringPhysical
    | Issuing'cardType'EnumStringVirtual
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardType'
    where toJSON (Issuing'cardType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardType'EnumStringPhysical) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "physical"
          toJSON (Issuing'cardType'EnumStringVirtual) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "virtual"
instance Data.Aeson.FromJSON Issuing'cardType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "physical")
                                          then Issuing'cardType'EnumStringPhysical
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "virtual")
                                                then Issuing'cardType'EnumStringVirtual
                                                else Issuing'cardType'EnumOther val)
-- | Defines the data type for the schema issuing.card_details
-- 
-- 
data Issuing'cardDetails = Issuing'cardDetails {
  -- | card: You can [create physical or virtual cards](https:\/\/stripe.com\/docs\/issuing\/cards) that are issued to cardholders.
  issuing'cardDetailsCard :: Issuing'card
  -- | cvc: The CVC number for the card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardDetailsCvc :: GHC.Base.String
  -- | exp_month: The expiration month of the card.
  , issuing'cardDetailsExpMonth :: GHC.Integer.Type.Integer
  -- | exp_year: The expiration year of the card.
  , issuing'cardDetailsExpYear :: GHC.Integer.Type.Integer
  -- | number: The card number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardDetailsNumber :: GHC.Base.String
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , issuing'cardDetailsObject :: Issuing'cardDetailsObject'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardDetails
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "card" (issuing'cardDetailsCard obj) : (Data.Aeson..=) "cvc" (issuing'cardDetailsCvc obj) : (Data.Aeson..=) "exp_month" (issuing'cardDetailsExpMonth obj) : (Data.Aeson..=) "exp_year" (issuing'cardDetailsExpYear obj) : (Data.Aeson..=) "number" (issuing'cardDetailsNumber obj) : (Data.Aeson..=) "object" (issuing'cardDetailsObject obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "card" (issuing'cardDetailsCard obj) GHC.Base.<> ((Data.Aeson..=) "cvc" (issuing'cardDetailsCvc obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (issuing'cardDetailsExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (issuing'cardDetailsExpYear obj) GHC.Base.<> ((Data.Aeson..=) "number" (issuing'cardDetailsNumber obj) GHC.Base.<> (Data.Aeson..=) "object" (issuing'cardDetailsObject obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardDetails
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardDetails" (\obj -> (((((GHC.Base.pure Issuing'cardDetails GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "cvc")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object"))
-- | Defines the enum schema issuing.card_detailsObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Issuing'cardDetailsObject'
    = Issuing'cardDetailsObject'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardDetailsObject'EnumTyped GHC.Base.String
    | Issuing'cardDetailsObject'EnumStringIssuing'cardDetails
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardDetailsObject'
    where toJSON (Issuing'cardDetailsObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardDetailsObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardDetailsObject'EnumStringIssuing'cardDetails) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.card_details"
instance Data.Aeson.FromJSON Issuing'cardDetailsObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.card_details")
                                          then Issuing'cardDetailsObject'EnumStringIssuing'cardDetails
                                          else Issuing'cardDetailsObject'EnumOther val)
-- | Defines the data type for the schema issuing.card_pin
-- 
-- The PIN of a \`Card\` object
data Issuing'cardPin = Issuing'cardPin {
  -- | card: You can [create physical or virtual cards](https:\/\/stripe.com\/docs\/issuing\/cards) that are issued to cardholders.
  issuing'cardPinCard :: Issuing'card
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , issuing'cardPinObject :: Issuing'cardPinObject'
  -- | pin: The PIN (4 digits number)
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardPinPin :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardPin
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "card" (issuing'cardPinCard obj) : (Data.Aeson..=) "object" (issuing'cardPinObject obj) : (Data.Aeson..=) "pin" (issuing'cardPinPin obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "card" (issuing'cardPinCard obj) GHC.Base.<> ((Data.Aeson..=) "object" (issuing'cardPinObject obj) GHC.Base.<> (Data.Aeson..=) "pin" (issuing'cardPinPin obj)))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardPin
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardPin" (\obj -> ((GHC.Base.pure Issuing'cardPin GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "pin"))
-- | Defines the enum schema issuing.card_pinObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Issuing'cardPinObject'
    = Issuing'cardPinObject'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardPinObject'EnumTyped GHC.Base.String
    | Issuing'cardPinObject'EnumStringIssuing'cardPin
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardPinObject'
    where toJSON (Issuing'cardPinObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardPinObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardPinObject'EnumStringIssuing'cardPin) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.card_pin"
instance Data.Aeson.FromJSON Issuing'cardPinObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.card_pin")
                                          then Issuing'cardPinObject'EnumStringIssuing'cardPin
                                          else Issuing'cardPinObject'EnumOther val)
-- | Defines the data type for the schema issuing.cardholder
-- 
-- An Issuing \`Cardholder\` object represents an individual or business entity who is [issued](https:\/\/stripe.com\/docs\/issuing) cards.
-- 
-- Related guide: [How to create a Cardholder](https:\/\/stripe.com\/docs\/issuing\/cards\#create-cardholder)
data Issuing'cardholder = Issuing'cardholder {
  -- | authorization_controls: Spending rules that give you some control over how this cardholder\'s cards can be used. Refer to our [authorizations](https:\/\/stripe.com\/docs\/issuing\/authorizations) documentation for more details.
  issuing'cardholderAuthorizationControls :: (GHC.Maybe.Maybe Issuing'cardholderAuthorizationControls')
  -- | billing: 
  , issuing'cardholderBilling :: IssuingCardholderAddress
  -- | company: Additional information about a \`business_entity\` cardholder.
  , issuing'cardholderCompany :: (GHC.Maybe.Maybe Issuing'cardholderCompany')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , issuing'cardholderCreated :: GHC.Integer.Type.Integer
  -- | email: The cardholder\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardholderEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardholderId :: GHC.Base.String
  -- | individual: Additional information about an \`individual\` cardholder.
  , issuing'cardholderIndividual :: (GHC.Maybe.Maybe Issuing'cardholderIndividual')
  -- | is_default: Whether or not this cardholder is the default cardholder.
  , issuing'cardholderIsDefault :: GHC.Types.Bool
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , issuing'cardholderLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , issuing'cardholderMetadata :: Issuing'cardholderMetadata'
  -- | name: The cardholder\'s name. This will be printed on cards issued to them.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardholderName :: GHC.Base.String
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , issuing'cardholderObject :: Issuing'cardholderObject'
  -- | phone_number: The cardholder\'s phone number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardholderPhoneNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | requirements: 
  , issuing'cardholderRequirements :: IssuingCardholderRequirements
  -- | status: Specifies whether to permit authorizations on this cardholder\'s cards.
  , issuing'cardholderStatus :: Issuing'cardholderStatus'
  -- | type: One of \`individual\` or \`business_entity\`.
  , issuing'cardholderType :: Issuing'cardholderType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholder
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "authorization_controls" (issuing'cardholderAuthorizationControls obj) : (Data.Aeson..=) "billing" (issuing'cardholderBilling obj) : (Data.Aeson..=) "company" (issuing'cardholderCompany obj) : (Data.Aeson..=) "created" (issuing'cardholderCreated obj) : (Data.Aeson..=) "email" (issuing'cardholderEmail obj) : (Data.Aeson..=) "id" (issuing'cardholderId obj) : (Data.Aeson..=) "individual" (issuing'cardholderIndividual obj) : (Data.Aeson..=) "is_default" (issuing'cardholderIsDefault obj) : (Data.Aeson..=) "livemode" (issuing'cardholderLivemode obj) : (Data.Aeson..=) "metadata" (issuing'cardholderMetadata obj) : (Data.Aeson..=) "name" (issuing'cardholderName obj) : (Data.Aeson..=) "object" (issuing'cardholderObject obj) : (Data.Aeson..=) "phone_number" (issuing'cardholderPhoneNumber obj) : (Data.Aeson..=) "requirements" (issuing'cardholderRequirements obj) : (Data.Aeson..=) "status" (issuing'cardholderStatus obj) : (Data.Aeson..=) "type" (issuing'cardholderType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "authorization_controls" (issuing'cardholderAuthorizationControls obj) GHC.Base.<> ((Data.Aeson..=) "billing" (issuing'cardholderBilling obj) GHC.Base.<> ((Data.Aeson..=) "company" (issuing'cardholderCompany obj) GHC.Base.<> ((Data.Aeson..=) "created" (issuing'cardholderCreated obj) GHC.Base.<> ((Data.Aeson..=) "email" (issuing'cardholderEmail obj) GHC.Base.<> ((Data.Aeson..=) "id" (issuing'cardholderId obj) GHC.Base.<> ((Data.Aeson..=) "individual" (issuing'cardholderIndividual obj) GHC.Base.<> ((Data.Aeson..=) "is_default" (issuing'cardholderIsDefault obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (issuing'cardholderLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (issuing'cardholderMetadata obj) GHC.Base.<> ((Data.Aeson..=) "name" (issuing'cardholderName obj) GHC.Base.<> ((Data.Aeson..=) "object" (issuing'cardholderObject obj) GHC.Base.<> ((Data.Aeson..=) "phone_number" (issuing'cardholderPhoneNumber obj) GHC.Base.<> ((Data.Aeson..=) "requirements" (issuing'cardholderRequirements obj) GHC.Base.<> ((Data.Aeson..=) "status" (issuing'cardholderStatus obj) GHC.Base.<> (Data.Aeson..=) "type" (issuing'cardholderType obj))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardholder
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardholder" (\obj -> (((((((((((((((GHC.Base.pure Issuing'cardholder GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "authorization_controls")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "billing")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "company")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "individual")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "is_default")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "requirements")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Defines the data type for the schema issuing.cardholderAuthorization_controls\'
-- 
-- Spending rules that give you some control over how this cardholder\\\'s cards can be used. Refer to our [authorizations](https:\\\/\\\/stripe.com\\\/docs\\\/issuing\\\/authorizations) documentation for more details.
data Issuing'cardholderAuthorizationControls' = Issuing'cardholderAuthorizationControls' {
  -- | allowed_categories: Array of strings containing [categories](https:\/\/stripe.com\/docs\/api\#issuing_authorization_object-merchant_data-category) of authorizations permitted on this cardholder\'s cards.
  issuing'cardholderAuthorizationControls'AllowedCategories :: (GHC.Maybe.Maybe ([] Issuing'cardholderAuthorizationControls'AllowedCategories'))
  -- | blocked_categories: Array of strings containing [categories](https:\/\/stripe.com\/docs\/api\#issuing_authorization_object-merchant_data-category) of authorizations to always decline on this cardholder\'s cards.
  , issuing'cardholderAuthorizationControls'BlockedCategories :: (GHC.Maybe.Maybe ([] Issuing'cardholderAuthorizationControls'BlockedCategories'))
  -- | spending_limits: Limit the spending with rules based on time intervals and categories.
  , issuing'cardholderAuthorizationControls'SpendingLimits :: (GHC.Maybe.Maybe ([] IssuingCardholderSpendingLimit))
  -- | spending_limits_currency: Currency for the amounts within spending_limits.
  , issuing'cardholderAuthorizationControls'SpendingLimitsCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderAuthorizationControls'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "allowed_categories" (issuing'cardholderAuthorizationControls'AllowedCategories obj) : (Data.Aeson..=) "blocked_categories" (issuing'cardholderAuthorizationControls'BlockedCategories obj) : (Data.Aeson..=) "spending_limits" (issuing'cardholderAuthorizationControls'SpendingLimits obj) : (Data.Aeson..=) "spending_limits_currency" (issuing'cardholderAuthorizationControls'SpendingLimitsCurrency obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "allowed_categories" (issuing'cardholderAuthorizationControls'AllowedCategories obj) GHC.Base.<> ((Data.Aeson..=) "blocked_categories" (issuing'cardholderAuthorizationControls'BlockedCategories obj) GHC.Base.<> ((Data.Aeson..=) "spending_limits" (issuing'cardholderAuthorizationControls'SpendingLimits obj) GHC.Base.<> (Data.Aeson..=) "spending_limits_currency" (issuing'cardholderAuthorizationControls'SpendingLimitsCurrency obj))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardholderAuthorizationControls'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardholderAuthorizationControls'" (\obj -> (((GHC.Base.pure Issuing'cardholderAuthorizationControls' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "allowed_categories")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "blocked_categories")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "spending_limits")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "spending_limits_currency"))
-- | Defines the enum schema issuing.cardholderAuthorization_controls\'Allowed_categories\'
-- 
-- 
data Issuing'cardholderAuthorizationControls'AllowedCategories'
    = Issuing'cardholderAuthorizationControls'AllowedCategories'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumTyped GHC.Base.String
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAcRefrigerationRepair
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAccountingBookkeepingServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAdvertisingServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAgriculturalCooperative
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAirlinesAirCarriers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAirportsFlyingFields
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAmbulanceServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAmusementParksCarnivals
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAntiqueReproductions
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAntiqueShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAquariums
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringArchitecturalSurveyingServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringArtDealersAndGalleries
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringArtistsSupplyAndCraftShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoAndHomeSupplyStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoBodyRepairShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoPaintShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoServiceShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomatedCashDisburse
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomatedFuelDispensers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomobileAssociations
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomotivePartsAndAccessoriesStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomotiveTireStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBailAndBondPayments
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBakeries
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBandsOrchestras
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBarberAndBeautyShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBettingCasinoGambling
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBicycleShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBilliardPoolEstablishments
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBoatDealers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBoatRentalsAndLeases
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBookStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBooksPeriodicalsAndNewspapers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBowlingAlleys
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBusLines
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBusinessSecretarialSchools
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBuyingShoppingServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCameraAndPhotographicSupplyStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCandyNutAndConfectioneryStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersNewUsed
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersUsedOnly
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarRentalAgencies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarWashes
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarpentryServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarpetUpholsteryCleaning
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCaterers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChemicalsAndAlliedProducts
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChildCareServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChildrensAndInfantsWearStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChiropodistsPodiatrists
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChiropractors
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCigarStoresAndStands
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCivicSocialFraternalAssociations
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCleaningAndMaintenance
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringClothingRental
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCollegesUniversities
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommercialEquipment
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommercialFootwear
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommercialPhotographyArtAndGraphics
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommuterTransportAndFerries
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerNetworkServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerProgramming
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerRepair
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerSoftwareStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputersPeripheralsAndSoftware
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringConcreteWorkServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringConstructionMaterials
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringConsultingPublicRelations
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCorrespondenceSchools
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCosmeticStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCounselingServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCountryClubs
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCourierServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCourtCosts
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCreditReportingAgencies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCruiseLines
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDairyProductsStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDanceHallStudiosSchools
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDatingEscortServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDentistsOrthodontists
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDepartmentStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDetectiveAgencies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsApplications
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsGames
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsLargeVolume
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsMedia
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingCatalogMerchant
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingInboundTelemarketing
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingInsuranceServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingOther
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingOutboundTelemarketing
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingSubscription
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingTravel
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDiscountStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDoctors
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDoorToDoorSales
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDrinkingPlaces
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDrugStoresAndPharmacies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDryCleaners
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDurableGoods
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDutyFreeStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEatingPlacesRestaurants
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEducationalServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectricRazorStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectricalPartsAndEquipment
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectricalServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectronicsRepairShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectronicsStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElementarySecondarySchools
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEmploymentTempAgencies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEquipmentRental
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringExterminatingServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFamilyClothingStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFastFoodRestaurants
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFinancialInstitutions
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFinesGovernmentAdministrativeEntities
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFloorCoveringStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFlorists
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFreezerAndLockerMeatProvisioners
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFuelDealersNonAutomotive
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFuneralServicesCrematories
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFurnitureRepairRefinishing
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFurriersAndFurShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGeneralServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGiftCardNoveltyAndSouvenirShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGlassPaintAndWallpaperStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGlasswareCrystalStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGolfCoursesPublic
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGovernmentServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGroceryStoresSupermarkets
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHardwareEquipmentAndSupplies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHardwareStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHealthAndBeautySpas
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHearingAidsSalesAndSupplies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHeatingPlumbingAC
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHobbyToyAndGameShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHomeSupplyWarehouseStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHospitals
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHotelsMotelsAndResorts
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHouseholdApplianceStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringIndustrialSupplies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringInformationRetrievalServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringInsuranceDefault
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringInsuranceUnderwritingPremiums
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringIntraCompanyPurchases
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLandscapingServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLaundries
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLaundryCleaningServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLegalServicesAttorneys
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLuggageAndLeatherGoodsStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLumberBuildingMaterialsStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringManualCashDisburse
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMarinasServiceAndSupplies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMasonryStoneworkAndPlaster
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMassageParlors
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMedicalAndDentalLabs
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMedicalServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMembershipOrganizations
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMensWomensClothingStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMetalServiceCenters
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneous
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousApparelAndAccessoryShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousAutoDealers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousBusinessServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousFoodStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralMerchandise
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousPublishingAndPrinting
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousRecreationServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousRepairShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousSpecialtyRetail
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMobileHomeDealers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotionPictureTheaters
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorFreightCarriersAndTrucking
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorHomesDealers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorVehicleSuppliesAndNewParts
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsAndDealers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsDealers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNewsDealersAndNewsstands
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNonFiMoneyOrders
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNonFiStoredValueCardPurchaseLoad
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNondurableGoods
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNurseriesLawnAndGardenSupplyStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNursingPersonalCare
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOfficeAndCommercialFurniture
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOpticiansEyeglasses
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOptometristsOphthalmologist
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOrthopedicGoodsProstheticDevices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOsteopaths
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPackageStoresBeerWineAndLiquor
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPaintsVarnishesAndSupplies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringParkingLotsGarages
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPassengerRailways
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPawnShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPetShopsPetFoodAndSupplies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPetroleumAndPetroleumProducts
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPhotoDeveloping
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPhotographicStudios
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPictureVideoProduction
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPoliticalOrganizations
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPostalServicesGovernmentOnly
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringProfessionalServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPublicWarehousingAndStorage
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringQuickCopyReproAndBlueprint
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRailroads
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRealEstateAgentsAndManagersRentals
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRecordStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRecreationalVehicleRentals
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringReligiousGoodsStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringReligiousOrganizations
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRoofingSidingSheetMetal
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSecretarialSupportServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSecurityBrokersDealers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringServiceStations
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringShoeRepairHatCleaning
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringShoeStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSmallApplianceRepair
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSnowmobileDealers
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSpecialTradeServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSpecialtyCleaning
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportingGoodsStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportingRecreationCamps
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportsAndRidingApparelStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportsClubsFields
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringStampAndCoinStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSwimmingPoolsSales
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTUiTravelGermany
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTailorsAlterations
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTaxPaymentsGovernmentAgencies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTaxPreparationServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTaxicabsLimousines
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTelecommunicationServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTelegraphServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTentAndAwningShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTestingLaboratories
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTheatricalTicketAgencies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTimeshares
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTireRetreadingAndRepair
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTollsBridgeFees
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTouristAttractionsAndExhibits
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTowingServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTrailerParksCampgrounds
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTransportationServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTravelAgenciesTourOperators
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTruckStopIteration
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTruckUtilityTrailerRentals
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTypesettingPlateMakingAndRelatedServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTypewriterStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUniformsCommercialClothing
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUsedMerchandiseAndSecondhandStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUtilities
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVarietyStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVeterinaryServices
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVideoAmusementGameSupplies
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVideoGameArcades
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVideoTapeRentalStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVocationalTradeSchools
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWatchJewelryRepair
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWeldingRepair
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWholesaleClubs
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWigAndToupeeStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWiresMoneyOrders
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWomensAccessoryAndSpecialtyShops
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWomensReadyToWearStores
    | Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWreckingAndSalvageYards
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderAuthorizationControls'AllowedCategories'
    where toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAcRefrigerationRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ac_refrigeration_repair"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAccountingBookkeepingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "accounting_bookkeeping_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAdvertisingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advertising_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAgriculturalCooperative) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "agricultural_cooperative"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAirlinesAirCarriers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airlines_air_carriers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAirportsFlyingFields) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airports_flying_fields"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAmbulanceServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ambulance_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAmusementParksCarnivals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amusement_parks_carnivals"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAntiqueReproductions) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_reproductions"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAntiqueShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAquariums) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "aquariums"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringArchitecturalSurveyingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "architectural_surveying_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringArtDealersAndGalleries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "art_dealers_and_galleries"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringArtistsSupplyAndCraftShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "artists_supply_and_craft_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoAndHomeSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_and_home_supply_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoBodyRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_body_repair_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoPaintShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_paint_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoServiceShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_service_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomatedCashDisburse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_cash_disburse"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomatedFuelDispensers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_fuel_dispensers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomobileAssociations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automobile_associations"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomotivePartsAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_parts_and_accessories_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomotiveTireStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_tire_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBailAndBondPayments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bail_and_bond_payments"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBakeries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bakeries"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBandsOrchestras) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bands_orchestras"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBarberAndBeautyShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "barber_and_beauty_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBettingCasinoGambling) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "betting_casino_gambling"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBicycleShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bicycle_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBilliardPoolEstablishments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "billiard_pool_establishments"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBoatDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBoatRentalsAndLeases) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_rentals_and_leases"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBookStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "book_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBooksPeriodicalsAndNewspapers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "books_periodicals_and_newspapers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBowlingAlleys) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bowling_alleys"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBusLines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bus_lines"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBusinessSecretarialSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_secretarial_schools"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBuyingShoppingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "buying_shopping_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cable_satellite_and_other_pay_television_and_radio"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCameraAndPhotographicSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "camera_and_photographic_supply_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCandyNutAndConfectioneryStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "candy_nut_and_confectionery_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersNewUsed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_new_used"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersUsedOnly) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_used_only"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarRentalAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_rental_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarWashes) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_washes"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarpentryServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpentry_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarpetUpholsteryCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpet_upholstery_cleaning"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCaterers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "caterers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charitable_and_social_service_organizations_fundraising"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChemicalsAndAlliedProducts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chemicals_and_allied_products"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChildCareServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "child_care_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChildrensAndInfantsWearStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "childrens_and_infants_wear_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChiropodistsPodiatrists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropodists_podiatrists"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChiropractors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropractors"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCigarStoresAndStands) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cigar_stores_and_stands"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCivicSocialFraternalAssociations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "civic_social_fraternal_associations"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCleaningAndMaintenance) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cleaning_and_maintenance"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringClothingRental) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "clothing_rental"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCollegesUniversities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "colleges_universities"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommercialEquipment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_equipment"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommercialFootwear) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_footwear"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommercialPhotographyArtAndGraphics) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_photography_art_and_graphics"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommuterTransportAndFerries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commuter_transport_and_ferries"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerNetworkServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_network_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerProgramming) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_programming"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_repair"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerSoftwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_software_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputersPeripheralsAndSoftware) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computers_peripherals_and_software"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringConcreteWorkServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "concrete_work_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringConstructionMaterials) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "construction_materials"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringConsultingPublicRelations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "consulting_public_relations"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCorrespondenceSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "correspondence_schools"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCosmeticStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cosmetic_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCounselingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "counseling_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCountryClubs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "country_clubs"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCourierServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "courier_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCourtCosts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "court_costs"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCreditReportingAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_reporting_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCruiseLines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cruise_lines"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDairyProductsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dairy_products_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDanceHallStudiosSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dance_hall_studios_schools"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDatingEscortServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dating_escort_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDentistsOrthodontists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dentists_orthodontists"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDepartmentStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "department_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDetectiveAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "detective_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsApplications) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_applications"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsGames) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_games"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsLargeVolume) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_large_volume"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsMedia) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_media"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingCatalogMerchant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_catalog_merchant"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_combination_catalog_and_retail_merchant"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingInboundTelemarketing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_inbound_telemarketing"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingInsuranceServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_insurance_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingOther) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_other"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingOutboundTelemarketing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_outbound_telemarketing"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingSubscription) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_subscription"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingTravel) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_travel"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDiscountStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDoctors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "doctors"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDoorToDoorSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "door_to_door_sales"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drapery_window_covering_and_upholstery_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDrinkingPlaces) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drinking_places"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDrugStoresAndPharmacies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drug_stores_and_pharmacies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drugs_drug_proprietaries_and_druggist_sundries"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDryCleaners) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dry_cleaners"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDurableGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "durable_goods"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDutyFreeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duty_free_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEatingPlacesRestaurants) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eating_places_restaurants"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEducationalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "educational_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectricRazorStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electric_razor_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectricalPartsAndEquipment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_parts_and_equipment"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectricalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectronicsRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_repair_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectronicsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElementarySecondarySchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "elementary_secondary_schools"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEmploymentTempAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "employment_temp_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEquipmentRental) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "equipment_rental"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringExterminatingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exterminating_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFamilyClothingStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "family_clothing_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFastFoodRestaurants) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fast_food_restaurants"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFinancialInstitutions) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "financial_institutions"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFinesGovernmentAdministrativeEntities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fines_government_administrative_entities"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fireplace_fireplace_screens_and_accessories_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFloorCoveringStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "floor_covering_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFlorists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists_supplies_nursery_stock_and_flowers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFreezerAndLockerMeatProvisioners) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "freezer_and_locker_meat_provisioners"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFuelDealersNonAutomotive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fuel_dealers_non_automotive"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFuneralServicesCrematories) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "funeral_services_crematories"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_home_furnishings_and_equipment_stores_except_appliances"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFurnitureRepairRefinishing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_repair_refinishing"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFurriersAndFurShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furriers_and_fur_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGeneralServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "general_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGiftCardNoveltyAndSouvenirShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "gift_card_novelty_and_souvenir_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGlassPaintAndWallpaperStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glass_paint_and_wallpaper_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGlasswareCrystalStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glassware_crystal_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGolfCoursesPublic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "golf_courses_public"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGovernmentServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGroceryStoresSupermarkets) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "grocery_stores_supermarkets"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHardwareEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_equipment_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHardwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHealthAndBeautySpas) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "health_and_beauty_spas"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHearingAidsSalesAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hearing_aids_sales_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHeatingPlumbingAC) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "heating_plumbing_a_c"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHobbyToyAndGameShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hobby_toy_and_game_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHomeSupplyWarehouseStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "home_supply_warehouse_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHospitals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hospitals"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHotelsMotelsAndResorts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hotels_motels_and_resorts"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHouseholdApplianceStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "household_appliance_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringIndustrialSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "industrial_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringInformationRetrievalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "information_retrieval_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringInsuranceDefault) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_default"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringInsuranceUnderwritingPremiums) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_underwriting_premiums"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringIntraCompanyPurchases) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "intra_company_purchases"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "jewelry_stores_watches_clocks_and_silverware_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLandscapingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "landscaping_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLaundries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundries"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLaundryCleaningServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundry_cleaning_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLegalServicesAttorneys) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "legal_services_attorneys"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLuggageAndLeatherGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "luggage_and_leather_goods_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLumberBuildingMaterialsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lumber_building_materials_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringManualCashDisburse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual_cash_disburse"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMarinasServiceAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "marinas_service_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMasonryStoneworkAndPlaster) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masonry_stonework_and_plaster"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMassageParlors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "massage_parlors"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMedicalAndDentalLabs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_and_dental_labs"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_dental_ophthalmic_and_hospital_equipment_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMedicalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMembershipOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "membership_organizations"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_and_boys_clothing_and_accessories_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMensWomensClothingStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_womens_clothing_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMetalServiceCenters) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metal_service_centers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneous) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousApparelAndAccessoryShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_apparel_and_accessory_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousAutoDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_auto_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousBusinessServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_business_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousFoodStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_food_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralMerchandise) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_merchandise"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_home_furnishing_specialty_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousPublishingAndPrinting) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_publishing_and_printing"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousRecreationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_recreation_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_repair_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousSpecialtyRetail) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_specialty_retail"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMobileHomeDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mobile_home_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotionPictureTheaters) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motion_picture_theaters"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorFreightCarriersAndTrucking) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_freight_carriers_and_trucking"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorHomesDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_homes_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorVehicleSuppliesAndNewParts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_vehicle_supplies_and_new_parts"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsAndDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_and_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "music_stores_musical_instruments_pianos_and_sheet_music"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNewsDealersAndNewsstands) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "news_dealers_and_newsstands"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNonFiMoneyOrders) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_money_orders"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNonFiStoredValueCardPurchaseLoad) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_stored_value_card_purchase_load"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNondurableGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nondurable_goods"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNurseriesLawnAndGardenSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nurseries_lawn_and_garden_supply_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNursingPersonalCare) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nursing_personal_care"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOfficeAndCommercialFurniture) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "office_and_commercial_furniture"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOpticiansEyeglasses) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "opticians_eyeglasses"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOptometristsOphthalmologist) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "optometrists_ophthalmologist"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOrthopedicGoodsProstheticDevices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "orthopedic_goods_prosthetic_devices"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOsteopaths) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "osteopaths"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPackageStoresBeerWineAndLiquor) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "package_stores_beer_wine_and_liquor"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPaintsVarnishesAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "paints_varnishes_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringParkingLotsGarages) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "parking_lots_garages"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPassengerRailways) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "passenger_railways"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPawnShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pawn_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPetShopsPetFoodAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pet_shops_pet_food_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPetroleumAndPetroleumProducts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "petroleum_and_petroleum_products"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPhotoDeveloping) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photo_developing"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_photocopy_microfilm_equipment_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPhotographicStudios) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_studios"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPictureVideoProduction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "picture_video_production"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "piece_goods_notions_and_other_dry_goods"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plumbing_heating_equipment_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPoliticalOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "political_organizations"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPostalServicesGovernmentOnly) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "postal_services_government_only"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "precious_stones_and_metals_watches_and_jewelry"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringProfessionalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "professional_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPublicWarehousingAndStorage) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_warehousing_and_storage"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringQuickCopyReproAndBlueprint) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "quick_copy_repro_and_blueprint"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRailroads) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "railroads"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRealEstateAgentsAndManagersRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "real_estate_agents_and_managers_rentals"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRecordStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "record_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRecreationalVehicleRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "recreational_vehicle_rentals"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringReligiousGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_goods_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringReligiousOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_organizations"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRoofingSidingSheetMetal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "roofing_siding_sheet_metal"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSecretarialSupportServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "secretarial_support_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSecurityBrokersDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "security_brokers_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringServiceStations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "service_stations"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sewing_needlework_fabric_and_piece_goods_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringShoeRepairHatCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_repair_hat_cleaning"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringShoeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSmallApplianceRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "small_appliance_repair"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSnowmobileDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "snowmobile_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSpecialTradeServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "special_trade_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSpecialtyCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "specialty_cleaning"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportingGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_goods_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportingRecreationCamps) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_recreation_camps"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportsAndRidingApparelStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_and_riding_apparel_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportsClubsFields) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_clubs_fields"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringStampAndCoinStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stamp_and_coin_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationary_office_supplies_printing_and_writing_paper"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationery_stores_office_and_school_supply_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSwimmingPoolsSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "swimming_pools_sales"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTUiTravelGermany) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "t_ui_travel_germany"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTailorsAlterations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tailors_alterations"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTaxPaymentsGovernmentAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_payments_government_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTaxPreparationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_preparation_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTaxicabsLimousines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "taxicabs_limousines"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_equipment_and_telephone_sales"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTelecommunicationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTelegraphServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telegraph_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTentAndAwningShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tent_and_awning_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTestingLaboratories) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "testing_laboratories"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTheatricalTicketAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "theatrical_ticket_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTimeshares) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "timeshares"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTireRetreadingAndRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tire_retreading_and_repair"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTollsBridgeFees) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tolls_bridge_fees"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTouristAttractionsAndExhibits) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tourist_attractions_and_exhibits"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTowingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "towing_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTrailerParksCampgrounds) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "trailer_parks_campgrounds"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTransportationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transportation_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTravelAgenciesTourOperators) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "travel_agencies_tour_operators"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTruckStopIteration) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_stop_iteration"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTruckUtilityTrailerRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_utility_trailer_rentals"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTypesettingPlateMakingAndRelatedServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typesetting_plate_making_and_related_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTypewriterStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typewriter_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "u_s_federal_government_agencies_or_departments"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUniformsCommercialClothing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "uniforms_commercial_clothing"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUsedMerchandiseAndSecondhandStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "used_merchandise_and_secondhand_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUtilities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "utilities"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVarietyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "variety_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVeterinaryServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "veterinary_services"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVideoAmusementGameSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_amusement_game_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVideoGameArcades) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_game_arcades"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVideoTapeRentalStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_tape_rental_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVocationalTradeSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "vocational_trade_schools"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWatchJewelryRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "watch_jewelry_repair"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWeldingRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "welding_repair"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWholesaleClubs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wholesale_clubs"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWigAndToupeeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wig_and_toupee_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWiresMoneyOrders) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wires_money_orders"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWomensAccessoryAndSpecialtyShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_accessory_and_specialty_shops"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWomensReadyToWearStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_ready_to_wear_stores"
          toJSON (Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWreckingAndSalvageYards) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wrecking_and_salvage_yards"
instance Data.Aeson.FromJSON Issuing'cardholderAuthorizationControls'AllowedCategories'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ac_refrigeration_repair")
                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAcRefrigerationRepair
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "accounting_bookkeeping_services")
                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAccountingBookkeepingServices
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advertising_services")
                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAdvertisingServices
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "agricultural_cooperative")
                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAgriculturalCooperative
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airlines_air_carriers")
                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAirlinesAirCarriers
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airports_flying_fields")
                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAirportsFlyingFields
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ambulance_services")
                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAmbulanceServices
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amusement_parks_carnivals")
                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAmusementParksCarnivals
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_reproductions")
                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAntiqueReproductions
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_shops")
                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAntiqueShops
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "aquariums")
                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAquariums
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "architectural_surveying_services")
                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringArchitecturalSurveyingServices
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "art_dealers_and_galleries")
                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringArtDealersAndGalleries
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "artists_supply_and_craft_shops")
                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringArtistsSupplyAndCraftShops
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_and_home_supply_stores")
                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoAndHomeSupplyStores
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_body_repair_shops")
                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoBodyRepairShops
                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_paint_shops")
                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoPaintShops
                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_service_shops")
                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutoServiceShops
                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_cash_disburse")
                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomatedCashDisburse
                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_fuel_dispensers")
                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomatedFuelDispensers
                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automobile_associations")
                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomobileAssociations
                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_parts_and_accessories_stores")
                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomotivePartsAndAccessoriesStores
                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_tire_stores")
                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringAutomotiveTireStores
                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bail_and_bond_payments")
                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBailAndBondPayments
                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bakeries")
                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBakeries
                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bands_orchestras")
                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBandsOrchestras
                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "barber_and_beauty_shops")
                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBarberAndBeautyShops
                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "betting_casino_gambling")
                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBettingCasinoGambling
                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bicycle_shops")
                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBicycleShops
                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "billiard_pool_establishments")
                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBilliardPoolEstablishments
                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_dealers")
                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBoatDealers
                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_rentals_and_leases")
                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBoatRentalsAndLeases
                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "book_stores")
                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBookStores
                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "books_periodicals_and_newspapers")
                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBooksPeriodicalsAndNewspapers
                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bowling_alleys")
                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBowlingAlleys
                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bus_lines")
                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBusLines
                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_secretarial_schools")
                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBusinessSecretarialSchools
                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "buying_shopping_services")
                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringBuyingShoppingServices
                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cable_satellite_and_other_pay_television_and_radio")
                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio
                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "camera_and_photographic_supply_stores")
                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCameraAndPhotographicSupplyStores
                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "candy_nut_and_confectionery_stores")
                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCandyNutAndConfectioneryStores
                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_new_used")
                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersNewUsed
                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_used_only")
                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarAndTruckDealersUsedOnly
                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_rental_agencies")
                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarRentalAgencies
                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_washes")
                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarWashes
                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpentry_services")
                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarpentryServices
                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpet_upholstery_cleaning")
                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCarpetUpholsteryCleaning
                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "caterers")
                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCaterers
                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charitable_and_social_service_organizations_fundraising")
                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising
                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chemicals_and_allied_products")
                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChemicalsAndAlliedProducts
                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "child_care_services")
                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChildCareServices
                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "childrens_and_infants_wear_stores")
                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChildrensAndInfantsWearStores
                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropodists_podiatrists")
                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChiropodistsPodiatrists
                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropractors")
                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringChiropractors
                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cigar_stores_and_stands")
                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCigarStoresAndStands
                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "civic_social_fraternal_associations")
                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCivicSocialFraternalAssociations
                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cleaning_and_maintenance")
                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCleaningAndMaintenance
                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "clothing_rental")
                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringClothingRental
                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "colleges_universities")
                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCollegesUniversities
                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_equipment")
                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommercialEquipment
                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_footwear")
                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommercialFootwear
                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_photography_art_and_graphics")
                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommercialPhotographyArtAndGraphics
                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commuter_transport_and_ferries")
                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCommuterTransportAndFerries
                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_network_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerNetworkServices
                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_programming")
                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerProgramming
                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_software_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputerSoftwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computers_peripherals_and_software")
                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringComputersPeripheralsAndSoftware
                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "concrete_work_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringConcreteWorkServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "construction_materials")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringConstructionMaterials
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "consulting_public_relations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringConsultingPublicRelations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "correspondence_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCorrespondenceSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cosmetic_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCosmeticStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "counseling_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCounselingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "country_clubs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCountryClubs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "courier_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCourierServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "court_costs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCourtCosts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_reporting_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCreditReportingAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cruise_lines")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringCruiseLines
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dairy_products_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDairyProductsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dance_hall_studios_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDanceHallStudiosSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dating_escort_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDatingEscortServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dentists_orthodontists")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDentistsOrthodontists
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "department_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDepartmentStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "detective_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDetectiveAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_applications")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsApplications
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_games")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsGames
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_large_volume")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsLargeVolume
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_media")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDigitalGoodsMedia
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_catalog_merchant")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingCatalogMerchant
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_combination_catalog_and_retail_merchant")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_inbound_telemarketing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingInboundTelemarketing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_insurance_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingInsuranceServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_other")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingOther
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_outbound_telemarketing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingOutboundTelemarketing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_subscription")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingSubscription
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_travel")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDirectMarketingTravel
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDiscountStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "doctors")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDoctors
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "door_to_door_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDoorToDoorSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drapery_window_covering_and_upholstery_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drinking_places")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDrinkingPlaces
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drug_stores_and_pharmacies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDrugStoresAndPharmacies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drugs_drug_proprietaries_and_druggist_sundries")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dry_cleaners")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDryCleaners
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "durable_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDurableGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duty_free_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringDutyFreeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eating_places_restaurants")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEatingPlacesRestaurants
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "educational_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEducationalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electric_razor_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectricRazorStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_parts_and_equipment")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectricalPartsAndEquipment
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectricalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_repair_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectronicsRepairShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElectronicsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "elementary_secondary_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringElementarySecondarySchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "employment_temp_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEmploymentTempAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "equipment_rental")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringEquipmentRental
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exterminating_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringExterminatingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "family_clothing_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFamilyClothingStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fast_food_restaurants")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFastFoodRestaurants
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "financial_institutions")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFinancialInstitutions
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fines_government_administrative_entities")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFinesGovernmentAdministrativeEntities
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fireplace_fireplace_screens_and_accessories_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "floor_covering_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFloorCoveringStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFlorists
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists_supplies_nursery_stock_and_flowers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "freezer_and_locker_meat_provisioners")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFreezerAndLockerMeatProvisioners
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fuel_dealers_non_automotive")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFuelDealersNonAutomotive
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "funeral_services_crematories")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFuneralServicesCrematories
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_home_furnishings_and_equipment_stores_except_appliances")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_repair_refinishing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFurnitureRepairRefinishing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furriers_and_fur_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringFurriersAndFurShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "general_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGeneralServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "gift_card_novelty_and_souvenir_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGiftCardNoveltyAndSouvenirShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glass_paint_and_wallpaper_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGlassPaintAndWallpaperStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glassware_crystal_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGlasswareCrystalStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "golf_courses_public")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGolfCoursesPublic
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGovernmentServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "grocery_stores_supermarkets")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringGroceryStoresSupermarkets
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHardwareEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHardwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "health_and_beauty_spas")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHealthAndBeautySpas
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hearing_aids_sales_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHearingAidsSalesAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "heating_plumbing_a_c")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHeatingPlumbingAC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hobby_toy_and_game_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHobbyToyAndGameShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "home_supply_warehouse_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHomeSupplyWarehouseStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hospitals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHospitals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hotels_motels_and_resorts")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHotelsMotelsAndResorts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "household_appliance_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringHouseholdApplianceStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "industrial_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringIndustrialSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "information_retrieval_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringInformationRetrievalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_default")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringInsuranceDefault
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_underwriting_premiums")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringInsuranceUnderwritingPremiums
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "intra_company_purchases")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringIntraCompanyPurchases
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "jewelry_stores_watches_clocks_and_silverware_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "landscaping_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLandscapingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundries")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLaundries
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundry_cleaning_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLaundryCleaningServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "legal_services_attorneys")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLegalServicesAttorneys
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "luggage_and_leather_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLuggageAndLeatherGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lumber_building_materials_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringLumberBuildingMaterialsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual_cash_disburse")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringManualCashDisburse
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "marinas_service_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMarinasServiceAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masonry_stonework_and_plaster")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMasonryStoneworkAndPlaster
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "massage_parlors")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMassageParlors
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_and_dental_labs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMedicalAndDentalLabs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_dental_ophthalmic_and_hospital_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMedicalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "membership_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMembershipOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_and_boys_clothing_and_accessories_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_womens_clothing_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMensWomensClothingStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metal_service_centers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMetalServiceCenters
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneous
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_apparel_and_accessory_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousApparelAndAccessoryShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_auto_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousAutoDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_business_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousBusinessServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_food_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousFoodStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_merchandise")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralMerchandise
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousGeneralServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_home_furnishing_specialty_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_publishing_and_printing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousPublishingAndPrinting
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_recreation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousRecreationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_repair_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousRepairShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_specialty_retail")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMiscellaneousSpecialtyRetail
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mobile_home_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMobileHomeDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motion_picture_theaters")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotionPictureTheaters
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_freight_carriers_and_trucking")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorFreightCarriersAndTrucking
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_homes_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorHomesDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_vehicle_supplies_and_new_parts")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorVehicleSuppliesAndNewParts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_and_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsAndDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMotorcycleShopsDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "music_stores_musical_instruments_pianos_and_sheet_music")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "news_dealers_and_newsstands")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNewsDealersAndNewsstands
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_money_orders")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNonFiMoneyOrders
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_stored_value_card_purchase_load")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNonFiStoredValueCardPurchaseLoad
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nondurable_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNondurableGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nurseries_lawn_and_garden_supply_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNurseriesLawnAndGardenSupplyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nursing_personal_care")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringNursingPersonalCare
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "office_and_commercial_furniture")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOfficeAndCommercialFurniture
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "opticians_eyeglasses")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOpticiansEyeglasses
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "optometrists_ophthalmologist")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOptometristsOphthalmologist
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "orthopedic_goods_prosthetic_devices")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOrthopedicGoodsProstheticDevices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "osteopaths")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringOsteopaths
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "package_stores_beer_wine_and_liquor")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPackageStoresBeerWineAndLiquor
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "paints_varnishes_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPaintsVarnishesAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "parking_lots_garages")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringParkingLotsGarages
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "passenger_railways")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPassengerRailways
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pawn_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPawnShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pet_shops_pet_food_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPetShopsPetFoodAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "petroleum_and_petroleum_products")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPetroleumAndPetroleumProducts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photo_developing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPhotoDeveloping
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_photocopy_microfilm_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_studios")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPhotographicStudios
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "picture_video_production")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPictureVideoProduction
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "piece_goods_notions_and_other_dry_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plumbing_heating_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "political_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPoliticalOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "postal_services_government_only")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPostalServicesGovernmentOnly
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "precious_stones_and_metals_watches_and_jewelry")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "professional_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringProfessionalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_warehousing_and_storage")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringPublicWarehousingAndStorage
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "quick_copy_repro_and_blueprint")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringQuickCopyReproAndBlueprint
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "railroads")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRailroads
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "real_estate_agents_and_managers_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRealEstateAgentsAndManagersRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "record_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRecordStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "recreational_vehicle_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRecreationalVehicleRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringReligiousGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringReligiousOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "roofing_siding_sheet_metal")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringRoofingSidingSheetMetal
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "secretarial_support_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSecretarialSupportServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "security_brokers_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSecurityBrokersDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "service_stations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringServiceStations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sewing_needlework_fabric_and_piece_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_repair_hat_cleaning")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringShoeRepairHatCleaning
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringShoeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "small_appliance_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSmallApplianceRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "snowmobile_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSnowmobileDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "special_trade_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSpecialTradeServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "specialty_cleaning")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSpecialtyCleaning
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportingGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_recreation_camps")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportingRecreationCamps
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_and_riding_apparel_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportsAndRidingApparelStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_clubs_fields")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSportsClubsFields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stamp_and_coin_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringStampAndCoinStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationary_office_supplies_printing_and_writing_paper")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationery_stores_office_and_school_supply_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "swimming_pools_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringSwimmingPoolsSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "t_ui_travel_germany")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTUiTravelGermany
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tailors_alterations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTailorsAlterations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_payments_government_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTaxPaymentsGovernmentAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_preparation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTaxPreparationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "taxicabs_limousines")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTaxicabsLimousines
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_equipment_and_telephone_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTelecommunicationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telegraph_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTelegraphServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tent_and_awning_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTentAndAwningShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "testing_laboratories")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTestingLaboratories
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "theatrical_ticket_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTheatricalTicketAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "timeshares")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTimeshares
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tire_retreading_and_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTireRetreadingAndRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tolls_bridge_fees")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTollsBridgeFees
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tourist_attractions_and_exhibits")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTouristAttractionsAndExhibits
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "towing_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTowingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "trailer_parks_campgrounds")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTrailerParksCampgrounds
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transportation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTransportationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "travel_agencies_tour_operators")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTravelAgenciesTourOperators
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_stop_iteration")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTruckStopIteration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_utility_trailer_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTruckUtilityTrailerRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typesetting_plate_making_and_related_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTypesettingPlateMakingAndRelatedServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typewriter_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringTypewriterStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "u_s_federal_government_agencies_or_departments")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "uniforms_commercial_clothing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUniformsCommercialClothing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "used_merchandise_and_secondhand_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUsedMerchandiseAndSecondhandStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "utilities")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringUtilities
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "variety_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVarietyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "veterinary_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVeterinaryServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_amusement_game_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVideoAmusementGameSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_game_arcades")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVideoGameArcades
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_tape_rental_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVideoTapeRentalStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "vocational_trade_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringVocationalTradeSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "watch_jewelry_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWatchJewelryRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "welding_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWeldingRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wholesale_clubs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWholesaleClubs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wig_and_toupee_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWigAndToupeeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wires_money_orders")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWiresMoneyOrders
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_accessory_and_specialty_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWomensAccessoryAndSpecialtyShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_ready_to_wear_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWomensReadyToWearStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wrecking_and_salvage_yards")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'AllowedCategories'EnumStringWreckingAndSalvageYards
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else Issuing'cardholderAuthorizationControls'AllowedCategories'EnumOther val)
-- | Defines the enum schema issuing.cardholderAuthorization_controls\'Blocked_categories\'
-- 
-- 
data Issuing'cardholderAuthorizationControls'BlockedCategories'
    = Issuing'cardholderAuthorizationControls'BlockedCategories'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumTyped GHC.Base.String
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAcRefrigerationRepair
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAccountingBookkeepingServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAdvertisingServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAgriculturalCooperative
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAirlinesAirCarriers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAirportsFlyingFields
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAmbulanceServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAmusementParksCarnivals
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAntiqueReproductions
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAntiqueShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAquariums
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringArchitecturalSurveyingServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringArtDealersAndGalleries
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringArtistsSupplyAndCraftShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoAndHomeSupplyStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoBodyRepairShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoPaintShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoServiceShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomatedCashDisburse
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomatedFuelDispensers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomobileAssociations
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomotivePartsAndAccessoriesStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomotiveTireStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBailAndBondPayments
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBakeries
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBandsOrchestras
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBarberAndBeautyShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBettingCasinoGambling
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBicycleShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBilliardPoolEstablishments
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBoatDealers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBoatRentalsAndLeases
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBookStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBooksPeriodicalsAndNewspapers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBowlingAlleys
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBusLines
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBusinessSecretarialSchools
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBuyingShoppingServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCameraAndPhotographicSupplyStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCandyNutAndConfectioneryStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersNewUsed
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersUsedOnly
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarRentalAgencies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarWashes
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarpentryServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarpetUpholsteryCleaning
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCaterers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChemicalsAndAlliedProducts
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChildCareServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChildrensAndInfantsWearStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChiropodistsPodiatrists
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChiropractors
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCigarStoresAndStands
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCivicSocialFraternalAssociations
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCleaningAndMaintenance
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringClothingRental
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCollegesUniversities
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommercialEquipment
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommercialFootwear
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommercialPhotographyArtAndGraphics
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommuterTransportAndFerries
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerNetworkServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerProgramming
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerRepair
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerSoftwareStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputersPeripheralsAndSoftware
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringConcreteWorkServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringConstructionMaterials
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringConsultingPublicRelations
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCorrespondenceSchools
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCosmeticStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCounselingServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCountryClubs
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCourierServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCourtCosts
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCreditReportingAgencies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCruiseLines
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDairyProductsStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDanceHallStudiosSchools
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDatingEscortServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDentistsOrthodontists
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDepartmentStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDetectiveAgencies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsApplications
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsGames
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsLargeVolume
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsMedia
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingCatalogMerchant
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingInboundTelemarketing
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingInsuranceServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingOther
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingOutboundTelemarketing
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingSubscription
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingTravel
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDiscountStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDoctors
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDoorToDoorSales
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDrinkingPlaces
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDrugStoresAndPharmacies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDryCleaners
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDurableGoods
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDutyFreeStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEatingPlacesRestaurants
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEducationalServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectricRazorStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectricalPartsAndEquipment
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectricalServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectronicsRepairShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectronicsStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElementarySecondarySchools
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEmploymentTempAgencies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEquipmentRental
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringExterminatingServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFamilyClothingStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFastFoodRestaurants
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFinancialInstitutions
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFinesGovernmentAdministrativeEntities
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFloorCoveringStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFlorists
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFreezerAndLockerMeatProvisioners
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFuelDealersNonAutomotive
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFuneralServicesCrematories
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFurnitureRepairRefinishing
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFurriersAndFurShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGeneralServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGiftCardNoveltyAndSouvenirShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGlassPaintAndWallpaperStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGlasswareCrystalStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGolfCoursesPublic
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGovernmentServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGroceryStoresSupermarkets
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHardwareEquipmentAndSupplies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHardwareStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHealthAndBeautySpas
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHearingAidsSalesAndSupplies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHeatingPlumbingAC
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHobbyToyAndGameShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHomeSupplyWarehouseStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHospitals
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHotelsMotelsAndResorts
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHouseholdApplianceStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringIndustrialSupplies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringInformationRetrievalServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringInsuranceDefault
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringInsuranceUnderwritingPremiums
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringIntraCompanyPurchases
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLandscapingServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLaundries
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLaundryCleaningServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLegalServicesAttorneys
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLuggageAndLeatherGoodsStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLumberBuildingMaterialsStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringManualCashDisburse
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMarinasServiceAndSupplies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMasonryStoneworkAndPlaster
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMassageParlors
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMedicalAndDentalLabs
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMedicalServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMembershipOrganizations
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMensWomensClothingStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMetalServiceCenters
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneous
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousApparelAndAccessoryShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousAutoDealers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousBusinessServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousFoodStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralMerchandise
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousPublishingAndPrinting
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousRecreationServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousRepairShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousSpecialtyRetail
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMobileHomeDealers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotionPictureTheaters
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorFreightCarriersAndTrucking
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorHomesDealers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorVehicleSuppliesAndNewParts
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsAndDealers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsDealers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNewsDealersAndNewsstands
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNonFiMoneyOrders
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNonFiStoredValueCardPurchaseLoad
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNondurableGoods
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNurseriesLawnAndGardenSupplyStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNursingPersonalCare
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOfficeAndCommercialFurniture
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOpticiansEyeglasses
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOptometristsOphthalmologist
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOrthopedicGoodsProstheticDevices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOsteopaths
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPackageStoresBeerWineAndLiquor
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPaintsVarnishesAndSupplies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringParkingLotsGarages
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPassengerRailways
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPawnShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPetShopsPetFoodAndSupplies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPetroleumAndPetroleumProducts
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPhotoDeveloping
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPhotographicStudios
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPictureVideoProduction
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPoliticalOrganizations
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPostalServicesGovernmentOnly
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringProfessionalServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPublicWarehousingAndStorage
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringQuickCopyReproAndBlueprint
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRailroads
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRealEstateAgentsAndManagersRentals
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRecordStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRecreationalVehicleRentals
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringReligiousGoodsStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringReligiousOrganizations
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRoofingSidingSheetMetal
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSecretarialSupportServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSecurityBrokersDealers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringServiceStations
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringShoeRepairHatCleaning
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringShoeStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSmallApplianceRepair
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSnowmobileDealers
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSpecialTradeServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSpecialtyCleaning
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportingGoodsStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportingRecreationCamps
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportsAndRidingApparelStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportsClubsFields
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringStampAndCoinStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSwimmingPoolsSales
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTUiTravelGermany
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTailorsAlterations
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTaxPaymentsGovernmentAgencies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTaxPreparationServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTaxicabsLimousines
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTelecommunicationServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTelegraphServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTentAndAwningShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTestingLaboratories
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTheatricalTicketAgencies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTimeshares
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTireRetreadingAndRepair
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTollsBridgeFees
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTouristAttractionsAndExhibits
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTowingServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTrailerParksCampgrounds
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTransportationServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTravelAgenciesTourOperators
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTruckStopIteration
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTruckUtilityTrailerRentals
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTypesettingPlateMakingAndRelatedServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTypewriterStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUniformsCommercialClothing
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUsedMerchandiseAndSecondhandStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUtilities
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVarietyStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVeterinaryServices
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVideoAmusementGameSupplies
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVideoGameArcades
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVideoTapeRentalStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVocationalTradeSchools
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWatchJewelryRepair
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWeldingRepair
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWholesaleClubs
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWigAndToupeeStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWiresMoneyOrders
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWomensAccessoryAndSpecialtyShops
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWomensReadyToWearStores
    | Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWreckingAndSalvageYards
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderAuthorizationControls'BlockedCategories'
    where toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAcRefrigerationRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ac_refrigeration_repair"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAccountingBookkeepingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "accounting_bookkeeping_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAdvertisingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advertising_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAgriculturalCooperative) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "agricultural_cooperative"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAirlinesAirCarriers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airlines_air_carriers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAirportsFlyingFields) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airports_flying_fields"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAmbulanceServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ambulance_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAmusementParksCarnivals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amusement_parks_carnivals"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAntiqueReproductions) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_reproductions"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAntiqueShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAquariums) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "aquariums"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringArchitecturalSurveyingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "architectural_surveying_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringArtDealersAndGalleries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "art_dealers_and_galleries"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringArtistsSupplyAndCraftShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "artists_supply_and_craft_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoAndHomeSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_and_home_supply_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoBodyRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_body_repair_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoPaintShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_paint_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoServiceShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_service_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomatedCashDisburse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_cash_disburse"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomatedFuelDispensers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_fuel_dispensers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomobileAssociations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automobile_associations"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomotivePartsAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_parts_and_accessories_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomotiveTireStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_tire_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBailAndBondPayments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bail_and_bond_payments"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBakeries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bakeries"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBandsOrchestras) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bands_orchestras"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBarberAndBeautyShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "barber_and_beauty_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBettingCasinoGambling) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "betting_casino_gambling"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBicycleShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bicycle_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBilliardPoolEstablishments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "billiard_pool_establishments"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBoatDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBoatRentalsAndLeases) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_rentals_and_leases"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBookStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "book_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBooksPeriodicalsAndNewspapers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "books_periodicals_and_newspapers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBowlingAlleys) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bowling_alleys"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBusLines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bus_lines"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBusinessSecretarialSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_secretarial_schools"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBuyingShoppingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "buying_shopping_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cable_satellite_and_other_pay_television_and_radio"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCameraAndPhotographicSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "camera_and_photographic_supply_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCandyNutAndConfectioneryStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "candy_nut_and_confectionery_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersNewUsed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_new_used"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersUsedOnly) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_used_only"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarRentalAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_rental_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarWashes) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_washes"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarpentryServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpentry_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarpetUpholsteryCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpet_upholstery_cleaning"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCaterers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "caterers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charitable_and_social_service_organizations_fundraising"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChemicalsAndAlliedProducts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chemicals_and_allied_products"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChildCareServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "child_care_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChildrensAndInfantsWearStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "childrens_and_infants_wear_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChiropodistsPodiatrists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropodists_podiatrists"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChiropractors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropractors"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCigarStoresAndStands) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cigar_stores_and_stands"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCivicSocialFraternalAssociations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "civic_social_fraternal_associations"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCleaningAndMaintenance) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cleaning_and_maintenance"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringClothingRental) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "clothing_rental"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCollegesUniversities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "colleges_universities"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommercialEquipment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_equipment"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommercialFootwear) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_footwear"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommercialPhotographyArtAndGraphics) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_photography_art_and_graphics"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommuterTransportAndFerries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commuter_transport_and_ferries"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerNetworkServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_network_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerProgramming) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_programming"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_repair"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerSoftwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_software_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputersPeripheralsAndSoftware) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computers_peripherals_and_software"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringConcreteWorkServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "concrete_work_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringConstructionMaterials) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "construction_materials"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringConsultingPublicRelations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "consulting_public_relations"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCorrespondenceSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "correspondence_schools"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCosmeticStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cosmetic_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCounselingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "counseling_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCountryClubs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "country_clubs"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCourierServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "courier_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCourtCosts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "court_costs"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCreditReportingAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_reporting_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCruiseLines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cruise_lines"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDairyProductsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dairy_products_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDanceHallStudiosSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dance_hall_studios_schools"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDatingEscortServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dating_escort_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDentistsOrthodontists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dentists_orthodontists"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDepartmentStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "department_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDetectiveAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "detective_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsApplications) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_applications"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsGames) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_games"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsLargeVolume) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_large_volume"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsMedia) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_media"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingCatalogMerchant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_catalog_merchant"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_combination_catalog_and_retail_merchant"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingInboundTelemarketing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_inbound_telemarketing"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingInsuranceServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_insurance_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingOther) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_other"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingOutboundTelemarketing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_outbound_telemarketing"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingSubscription) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_subscription"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingTravel) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_travel"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDiscountStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDoctors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "doctors"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDoorToDoorSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "door_to_door_sales"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drapery_window_covering_and_upholstery_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDrinkingPlaces) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drinking_places"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDrugStoresAndPharmacies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drug_stores_and_pharmacies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drugs_drug_proprietaries_and_druggist_sundries"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDryCleaners) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dry_cleaners"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDurableGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "durable_goods"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDutyFreeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duty_free_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEatingPlacesRestaurants) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eating_places_restaurants"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEducationalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "educational_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectricRazorStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electric_razor_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectricalPartsAndEquipment) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_parts_and_equipment"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectricalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectronicsRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_repair_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectronicsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElementarySecondarySchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "elementary_secondary_schools"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEmploymentTempAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "employment_temp_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEquipmentRental) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "equipment_rental"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringExterminatingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exterminating_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFamilyClothingStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "family_clothing_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFastFoodRestaurants) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fast_food_restaurants"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFinancialInstitutions) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "financial_institutions"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFinesGovernmentAdministrativeEntities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fines_government_administrative_entities"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fireplace_fireplace_screens_and_accessories_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFloorCoveringStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "floor_covering_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFlorists) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists_supplies_nursery_stock_and_flowers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFreezerAndLockerMeatProvisioners) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "freezer_and_locker_meat_provisioners"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFuelDealersNonAutomotive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fuel_dealers_non_automotive"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFuneralServicesCrematories) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "funeral_services_crematories"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_home_furnishings_and_equipment_stores_except_appliances"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFurnitureRepairRefinishing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_repair_refinishing"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFurriersAndFurShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furriers_and_fur_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGeneralServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "general_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGiftCardNoveltyAndSouvenirShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "gift_card_novelty_and_souvenir_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGlassPaintAndWallpaperStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glass_paint_and_wallpaper_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGlasswareCrystalStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glassware_crystal_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGolfCoursesPublic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "golf_courses_public"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGovernmentServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGroceryStoresSupermarkets) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "grocery_stores_supermarkets"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHardwareEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_equipment_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHardwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHealthAndBeautySpas) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "health_and_beauty_spas"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHearingAidsSalesAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hearing_aids_sales_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHeatingPlumbingAC) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "heating_plumbing_a_c"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHobbyToyAndGameShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hobby_toy_and_game_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHomeSupplyWarehouseStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "home_supply_warehouse_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHospitals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hospitals"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHotelsMotelsAndResorts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hotels_motels_and_resorts"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHouseholdApplianceStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "household_appliance_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringIndustrialSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "industrial_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringInformationRetrievalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "information_retrieval_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringInsuranceDefault) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_default"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringInsuranceUnderwritingPremiums) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_underwriting_premiums"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringIntraCompanyPurchases) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "intra_company_purchases"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "jewelry_stores_watches_clocks_and_silverware_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLandscapingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "landscaping_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLaundries) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundries"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLaundryCleaningServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundry_cleaning_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLegalServicesAttorneys) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "legal_services_attorneys"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLuggageAndLeatherGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "luggage_and_leather_goods_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLumberBuildingMaterialsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lumber_building_materials_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringManualCashDisburse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual_cash_disburse"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMarinasServiceAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "marinas_service_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMasonryStoneworkAndPlaster) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masonry_stonework_and_plaster"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMassageParlors) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "massage_parlors"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMedicalAndDentalLabs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_and_dental_labs"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_dental_ophthalmic_and_hospital_equipment_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMedicalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMembershipOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "membership_organizations"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_and_boys_clothing_and_accessories_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMensWomensClothingStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_womens_clothing_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMetalServiceCenters) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metal_service_centers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneous) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousApparelAndAccessoryShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_apparel_and_accessory_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousAutoDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_auto_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousBusinessServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_business_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousFoodStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_food_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralMerchandise) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_merchandise"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_home_furnishing_specialty_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousPublishingAndPrinting) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_publishing_and_printing"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousRecreationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_recreation_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousRepairShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_repair_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousSpecialtyRetail) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_specialty_retail"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMobileHomeDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mobile_home_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotionPictureTheaters) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motion_picture_theaters"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorFreightCarriersAndTrucking) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_freight_carriers_and_trucking"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorHomesDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_homes_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorVehicleSuppliesAndNewParts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_vehicle_supplies_and_new_parts"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsAndDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_and_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "music_stores_musical_instruments_pianos_and_sheet_music"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNewsDealersAndNewsstands) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "news_dealers_and_newsstands"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNonFiMoneyOrders) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_money_orders"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNonFiStoredValueCardPurchaseLoad) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_stored_value_card_purchase_load"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNondurableGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nondurable_goods"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNurseriesLawnAndGardenSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nurseries_lawn_and_garden_supply_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNursingPersonalCare) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nursing_personal_care"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOfficeAndCommercialFurniture) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "office_and_commercial_furniture"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOpticiansEyeglasses) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "opticians_eyeglasses"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOptometristsOphthalmologist) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "optometrists_ophthalmologist"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOrthopedicGoodsProstheticDevices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "orthopedic_goods_prosthetic_devices"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOsteopaths) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "osteopaths"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPackageStoresBeerWineAndLiquor) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "package_stores_beer_wine_and_liquor"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPaintsVarnishesAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "paints_varnishes_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringParkingLotsGarages) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "parking_lots_garages"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPassengerRailways) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "passenger_railways"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPawnShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pawn_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPetShopsPetFoodAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pet_shops_pet_food_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPetroleumAndPetroleumProducts) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "petroleum_and_petroleum_products"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPhotoDeveloping) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photo_developing"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_photocopy_microfilm_equipment_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPhotographicStudios) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_studios"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPictureVideoProduction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "picture_video_production"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "piece_goods_notions_and_other_dry_goods"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plumbing_heating_equipment_and_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPoliticalOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "political_organizations"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPostalServicesGovernmentOnly) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "postal_services_government_only"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "precious_stones_and_metals_watches_and_jewelry"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringProfessionalServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "professional_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPublicWarehousingAndStorage) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_warehousing_and_storage"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringQuickCopyReproAndBlueprint) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "quick_copy_repro_and_blueprint"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRailroads) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "railroads"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRealEstateAgentsAndManagersRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "real_estate_agents_and_managers_rentals"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRecordStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "record_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRecreationalVehicleRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "recreational_vehicle_rentals"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringReligiousGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_goods_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringReligiousOrganizations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_organizations"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRoofingSidingSheetMetal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "roofing_siding_sheet_metal"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSecretarialSupportServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "secretarial_support_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSecurityBrokersDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "security_brokers_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringServiceStations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "service_stations"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sewing_needlework_fabric_and_piece_goods_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringShoeRepairHatCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_repair_hat_cleaning"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringShoeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSmallApplianceRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "small_appliance_repair"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSnowmobileDealers) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "snowmobile_dealers"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSpecialTradeServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "special_trade_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSpecialtyCleaning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "specialty_cleaning"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportingGoodsStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_goods_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportingRecreationCamps) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_recreation_camps"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportsAndRidingApparelStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_and_riding_apparel_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportsClubsFields) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_clubs_fields"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringStampAndCoinStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stamp_and_coin_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationary_office_supplies_printing_and_writing_paper"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationery_stores_office_and_school_supply_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSwimmingPoolsSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "swimming_pools_sales"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTUiTravelGermany) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "t_ui_travel_germany"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTailorsAlterations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tailors_alterations"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTaxPaymentsGovernmentAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_payments_government_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTaxPreparationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_preparation_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTaxicabsLimousines) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "taxicabs_limousines"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_equipment_and_telephone_sales"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTelecommunicationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTelegraphServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telegraph_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTentAndAwningShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tent_and_awning_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTestingLaboratories) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "testing_laboratories"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTheatricalTicketAgencies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "theatrical_ticket_agencies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTimeshares) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "timeshares"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTireRetreadingAndRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tire_retreading_and_repair"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTollsBridgeFees) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tolls_bridge_fees"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTouristAttractionsAndExhibits) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tourist_attractions_and_exhibits"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTowingServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "towing_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTrailerParksCampgrounds) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "trailer_parks_campgrounds"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTransportationServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transportation_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTravelAgenciesTourOperators) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "travel_agencies_tour_operators"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTruckStopIteration) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_stop_iteration"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTruckUtilityTrailerRentals) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_utility_trailer_rentals"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTypesettingPlateMakingAndRelatedServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typesetting_plate_making_and_related_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTypewriterStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typewriter_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "u_s_federal_government_agencies_or_departments"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUniformsCommercialClothing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "uniforms_commercial_clothing"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUsedMerchandiseAndSecondhandStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "used_merchandise_and_secondhand_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUtilities) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "utilities"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVarietyStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "variety_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVeterinaryServices) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "veterinary_services"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVideoAmusementGameSupplies) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_amusement_game_supplies"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVideoGameArcades) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_game_arcades"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVideoTapeRentalStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_tape_rental_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVocationalTradeSchools) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "vocational_trade_schools"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWatchJewelryRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "watch_jewelry_repair"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWeldingRepair) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "welding_repair"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWholesaleClubs) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wholesale_clubs"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWigAndToupeeStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wig_and_toupee_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWiresMoneyOrders) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wires_money_orders"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWomensAccessoryAndSpecialtyShops) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_accessory_and_specialty_shops"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWomensReadyToWearStores) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_ready_to_wear_stores"
          toJSON (Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWreckingAndSalvageYards) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wrecking_and_salvage_yards"
instance Data.Aeson.FromJSON Issuing'cardholderAuthorizationControls'BlockedCategories'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ac_refrigeration_repair")
                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAcRefrigerationRepair
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "accounting_bookkeeping_services")
                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAccountingBookkeepingServices
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "advertising_services")
                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAdvertisingServices
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "agricultural_cooperative")
                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAgriculturalCooperative
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airlines_air_carriers")
                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAirlinesAirCarriers
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "airports_flying_fields")
                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAirportsFlyingFields
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ambulance_services")
                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAmbulanceServices
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amusement_parks_carnivals")
                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAmusementParksCarnivals
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_reproductions")
                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAntiqueReproductions
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "antique_shops")
                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAntiqueShops
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "aquariums")
                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAquariums
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "architectural_surveying_services")
                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringArchitecturalSurveyingServices
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "art_dealers_and_galleries")
                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringArtDealersAndGalleries
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "artists_supply_and_craft_shops")
                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringArtistsSupplyAndCraftShops
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_and_home_supply_stores")
                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoAndHomeSupplyStores
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_body_repair_shops")
                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoBodyRepairShops
                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_paint_shops")
                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoPaintShops
                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "auto_service_shops")
                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutoServiceShops
                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_cash_disburse")
                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomatedCashDisburse
                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automated_fuel_dispensers")
                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomatedFuelDispensers
                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automobile_associations")
                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomobileAssociations
                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_parts_and_accessories_stores")
                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomotivePartsAndAccessoriesStores
                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automotive_tire_stores")
                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringAutomotiveTireStores
                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bail_and_bond_payments")
                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBailAndBondPayments
                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bakeries")
                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBakeries
                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bands_orchestras")
                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBandsOrchestras
                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "barber_and_beauty_shops")
                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBarberAndBeautyShops
                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "betting_casino_gambling")
                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBettingCasinoGambling
                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bicycle_shops")
                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBicycleShops
                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "billiard_pool_establishments")
                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBilliardPoolEstablishments
                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_dealers")
                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBoatDealers
                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "boat_rentals_and_leases")
                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBoatRentalsAndLeases
                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "book_stores")
                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBookStores
                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "books_periodicals_and_newspapers")
                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBooksPeriodicalsAndNewspapers
                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bowling_alleys")
                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBowlingAlleys
                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bus_lines")
                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBusLines
                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_secretarial_schools")
                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBusinessSecretarialSchools
                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "buying_shopping_services")
                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringBuyingShoppingServices
                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cable_satellite_and_other_pay_television_and_radio")
                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCableSatelliteAndOtherPayTelevisionAndRadio
                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "camera_and_photographic_supply_stores")
                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCameraAndPhotographicSupplyStores
                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "candy_nut_and_confectionery_stores")
                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCandyNutAndConfectioneryStores
                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_new_used")
                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersNewUsed
                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_and_truck_dealers_used_only")
                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarAndTruckDealersUsedOnly
                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_rental_agencies")
                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarRentalAgencies
                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "car_washes")
                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarWashes
                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpentry_services")
                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarpentryServices
                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "carpet_upholstery_cleaning")
                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCarpetUpholsteryCleaning
                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "caterers")
                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCaterers
                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charitable_and_social_service_organizations_fundraising")
                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCharitableAndSocialServiceOrganizationsFundraising
                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chemicals_and_allied_products")
                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChemicalsAndAlliedProducts
                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "child_care_services")
                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChildCareServices
                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "childrens_and_infants_wear_stores")
                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChildrensAndInfantsWearStores
                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropodists_podiatrists")
                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChiropodistsPodiatrists
                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "chiropractors")
                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringChiropractors
                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cigar_stores_and_stands")
                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCigarStoresAndStands
                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "civic_social_fraternal_associations")
                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCivicSocialFraternalAssociations
                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cleaning_and_maintenance")
                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCleaningAndMaintenance
                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "clothing_rental")
                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringClothingRental
                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "colleges_universities")
                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCollegesUniversities
                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_equipment")
                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommercialEquipment
                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_footwear")
                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommercialFootwear
                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commercial_photography_art_and_graphics")
                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommercialPhotographyArtAndGraphics
                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "commuter_transport_and_ferries")
                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCommuterTransportAndFerries
                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_network_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerNetworkServices
                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_programming")
                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerProgramming
                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computer_software_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputerSoftwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "computers_peripherals_and_software")
                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringComputersPeripheralsAndSoftware
                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "concrete_work_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringConcreteWorkServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "construction_materials")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringConstructionMaterials
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "consulting_public_relations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringConsultingPublicRelations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "correspondence_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCorrespondenceSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cosmetic_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCosmeticStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "counseling_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCounselingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "country_clubs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCountryClubs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "courier_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCourierServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "court_costs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCourtCosts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "credit_reporting_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCreditReportingAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cruise_lines")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringCruiseLines
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dairy_products_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDairyProductsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dance_hall_studios_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDanceHallStudiosSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dating_escort_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDatingEscortServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dentists_orthodontists")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDentistsOrthodontists
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "department_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDepartmentStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "detective_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDetectiveAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_applications")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsApplications
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_games")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsGames
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_large_volume")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsLargeVolume
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "digital_goods_media")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDigitalGoodsMedia
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_catalog_merchant")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingCatalogMerchant
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_combination_catalog_and_retail_merchant")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingCombinationCatalogAndRetailMerchant
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_inbound_telemarketing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingInboundTelemarketing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_insurance_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingInsuranceServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_other")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingOther
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_outbound_telemarketing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingOutboundTelemarketing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_subscription")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingSubscription
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "direct_marketing_travel")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDirectMarketingTravel
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDiscountStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "doctors")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDoctors
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "door_to_door_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDoorToDoorSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drapery_window_covering_and_upholstery_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDraperyWindowCoveringAndUpholsteryStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drinking_places")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDrinkingPlaces
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drug_stores_and_pharmacies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDrugStoresAndPharmacies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "drugs_drug_proprietaries_and_druggist_sundries")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDrugsDrugProprietariesAndDruggistSundries
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dry_cleaners")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDryCleaners
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "durable_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDurableGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duty_free_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringDutyFreeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eating_places_restaurants")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEatingPlacesRestaurants
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "educational_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEducationalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electric_razor_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectricRazorStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_parts_and_equipment")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectricalPartsAndEquipment
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electrical_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectricalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_repair_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectronicsRepairShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "electronics_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElectronicsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "elementary_secondary_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringElementarySecondarySchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "employment_temp_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEmploymentTempAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "equipment_rental")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringEquipmentRental
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "exterminating_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringExterminatingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "family_clothing_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFamilyClothingStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fast_food_restaurants")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFastFoodRestaurants
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "financial_institutions")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFinancialInstitutions
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fines_government_administrative_entities")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFinesGovernmentAdministrativeEntities
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fireplace_fireplace_screens_and_accessories_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFireplaceFireplaceScreensAndAccessoriesStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "floor_covering_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFloorCoveringStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFlorists
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "florists_supplies_nursery_stock_and_flowers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFloristsSuppliesNurseryStockAndFlowers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "freezer_and_locker_meat_provisioners")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFreezerAndLockerMeatProvisioners
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fuel_dealers_non_automotive")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFuelDealersNonAutomotive
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "funeral_services_crematories")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFuneralServicesCrematories
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_home_furnishings_and_equipment_stores_except_appliances")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFurnitureHomeFurnishingsAndEquipmentStoresExceptAppliances
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furniture_repair_refinishing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFurnitureRepairRefinishing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "furriers_and_fur_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringFurriersAndFurShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "general_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGeneralServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "gift_card_novelty_and_souvenir_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGiftCardNoveltyAndSouvenirShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glass_paint_and_wallpaper_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGlassPaintAndWallpaperStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "glassware_crystal_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGlasswareCrystalStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "golf_courses_public")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGolfCoursesPublic
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGovernmentServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "grocery_stores_supermarkets")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringGroceryStoresSupermarkets
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHardwareEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hardware_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHardwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "health_and_beauty_spas")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHealthAndBeautySpas
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hearing_aids_sales_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHearingAidsSalesAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "heating_plumbing_a_c")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHeatingPlumbingAC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hobby_toy_and_game_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHobbyToyAndGameShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "home_supply_warehouse_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHomeSupplyWarehouseStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hospitals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHospitals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hotels_motels_and_resorts")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHotelsMotelsAndResorts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "household_appliance_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringHouseholdApplianceStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "industrial_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringIndustrialSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "information_retrieval_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringInformationRetrievalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_default")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringInsuranceDefault
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "insurance_underwriting_premiums")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringInsuranceUnderwritingPremiums
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "intra_company_purchases")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringIntraCompanyPurchases
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "jewelry_stores_watches_clocks_and_silverware_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringJewelryStoresWatchesClocksAndSilverwareStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "landscaping_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLandscapingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundries")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLaundries
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "laundry_cleaning_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLaundryCleaningServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "legal_services_attorneys")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLegalServicesAttorneys
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "luggage_and_leather_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLuggageAndLeatherGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lumber_building_materials_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringLumberBuildingMaterialsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual_cash_disburse")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringManualCashDisburse
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "marinas_service_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMarinasServiceAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masonry_stonework_and_plaster")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMasonryStoneworkAndPlaster
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "massage_parlors")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMassageParlors
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_and_dental_labs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMedicalAndDentalLabs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_dental_ophthalmic_and_hospital_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMedicalDentalOphthalmicAndHospitalEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "medical_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMedicalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "membership_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMembershipOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_and_boys_clothing_and_accessories_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMensAndBoysClothingAndAccessoriesStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mens_womens_clothing_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMensWomensClothingStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metal_service_centers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMetalServiceCenters
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneous
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_apparel_and_accessory_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousApparelAndAccessoryShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_auto_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousAutoDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_business_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousBusinessServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_food_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousFoodStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_merchandise")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralMerchandise
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_general_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousGeneralServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_home_furnishing_specialty_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousHomeFurnishingSpecialtyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_publishing_and_printing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousPublishingAndPrinting
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_recreation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousRecreationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_repair_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousRepairShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "miscellaneous_specialty_retail")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMiscellaneousSpecialtyRetail
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mobile_home_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMobileHomeDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motion_picture_theaters")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotionPictureTheaters
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_freight_carriers_and_trucking")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorFreightCarriersAndTrucking
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_homes_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorHomesDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motor_vehicle_supplies_and_new_parts")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorVehicleSuppliesAndNewParts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_and_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsAndDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "motorcycle_shops_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMotorcycleShopsDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "music_stores_musical_instruments_pianos_and_sheet_music")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringMusicStoresMusicalInstrumentsPianosAndSheetMusic
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "news_dealers_and_newsstands")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNewsDealersAndNewsstands
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_money_orders")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNonFiMoneyOrders
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_fi_stored_value_card_purchase_load")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNonFiStoredValueCardPurchaseLoad
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nondurable_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNondurableGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nurseries_lawn_and_garden_supply_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNurseriesLawnAndGardenSupplyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nursing_personal_care")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringNursingPersonalCare
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "office_and_commercial_furniture")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOfficeAndCommercialFurniture
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "opticians_eyeglasses")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOpticiansEyeglasses
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "optometrists_ophthalmologist")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOptometristsOphthalmologist
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "orthopedic_goods_prosthetic_devices")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOrthopedicGoodsProstheticDevices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "osteopaths")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringOsteopaths
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "package_stores_beer_wine_and_liquor")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPackageStoresBeerWineAndLiquor
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "paints_varnishes_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPaintsVarnishesAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "parking_lots_garages")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringParkingLotsGarages
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "passenger_railways")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPassengerRailways
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pawn_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPawnShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pet_shops_pet_food_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPetShopsPetFoodAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "petroleum_and_petroleum_products")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPetroleumAndPetroleumProducts
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photo_developing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPhotoDeveloping
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_photocopy_microfilm_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPhotographicPhotocopyMicrofilmEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "photographic_studios")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPhotographicStudios
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "picture_video_production")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPictureVideoProduction
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "piece_goods_notions_and_other_dry_goods")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPieceGoodsNotionsAndOtherDryGoods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plumbing_heating_equipment_and_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPlumbingHeatingEquipmentAndSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "political_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPoliticalOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "postal_services_government_only")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPostalServicesGovernmentOnly
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "precious_stones_and_metals_watches_and_jewelry")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPreciousStonesAndMetalsWatchesAndJewelry
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "professional_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringProfessionalServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_warehousing_and_storage")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringPublicWarehousingAndStorage
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "quick_copy_repro_and_blueprint")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringQuickCopyReproAndBlueprint
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "railroads")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRailroads
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "real_estate_agents_and_managers_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRealEstateAgentsAndManagersRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "record_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRecordStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "recreational_vehicle_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRecreationalVehicleRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringReligiousGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "religious_organizations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringReligiousOrganizations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "roofing_siding_sheet_metal")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringRoofingSidingSheetMetal
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "secretarial_support_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSecretarialSupportServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "security_brokers_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSecurityBrokersDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "service_stations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringServiceStations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sewing_needlework_fabric_and_piece_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSewingNeedleworkFabricAndPieceGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_repair_hat_cleaning")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringShoeRepairHatCleaning
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "shoe_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringShoeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "small_appliance_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSmallApplianceRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "snowmobile_dealers")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSnowmobileDealers
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "special_trade_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSpecialTradeServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "specialty_cleaning")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSpecialtyCleaning
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_goods_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportingGoodsStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sporting_recreation_camps")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportingRecreationCamps
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_and_riding_apparel_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportsAndRidingApparelStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sports_clubs_fields")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSportsClubsFields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stamp_and_coin_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringStampAndCoinStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationary_office_supplies_printing_and_writing_paper")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringStationaryOfficeSuppliesPrintingAndWritingPaper
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "stationery_stores_office_and_school_supply_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringStationeryStoresOfficeAndSchoolSupplyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "swimming_pools_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringSwimmingPoolsSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "t_ui_travel_germany")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTUiTravelGermany
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tailors_alterations")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTailorsAlterations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_payments_government_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTaxPaymentsGovernmentAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_preparation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTaxPreparationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "taxicabs_limousines")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTaxicabsLimousines
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_equipment_and_telephone_sales")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTelecommunicationEquipmentAndTelephoneSales
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telecommunication_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTelecommunicationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "telegraph_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTelegraphServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tent_and_awning_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTentAndAwningShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "testing_laboratories")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTestingLaboratories
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "theatrical_ticket_agencies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTheatricalTicketAgencies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "timeshares")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTimeshares
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tire_retreading_and_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTireRetreadingAndRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tolls_bridge_fees")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTollsBridgeFees
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tourist_attractions_and_exhibits")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTouristAttractionsAndExhibits
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "towing_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTowingServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "trailer_parks_campgrounds")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTrailerParksCampgrounds
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transportation_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTransportationServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "travel_agencies_tour_operators")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTravelAgenciesTourOperators
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_stop_iteration")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTruckStopIteration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "truck_utility_trailer_rentals")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTruckUtilityTrailerRentals
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typesetting_plate_making_and_related_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTypesettingPlateMakingAndRelatedServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "typewriter_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringTypewriterStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "u_s_federal_government_agencies_or_departments")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUSFederalGovernmentAgenciesOrDepartments
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "uniforms_commercial_clothing")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUniformsCommercialClothing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "used_merchandise_and_secondhand_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUsedMerchandiseAndSecondhandStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "utilities")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringUtilities
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "variety_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVarietyStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "veterinary_services")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVeterinaryServices
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_amusement_game_supplies")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVideoAmusementGameSupplies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_game_arcades")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVideoGameArcades
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "video_tape_rental_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVideoTapeRentalStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "vocational_trade_schools")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringVocationalTradeSchools
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "watch_jewelry_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWatchJewelryRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "welding_repair")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWeldingRepair
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wholesale_clubs")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWholesaleClubs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wig_and_toupee_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWigAndToupeeStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wires_money_orders")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWiresMoneyOrders
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_accessory_and_specialty_shops")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWomensAccessoryAndSpecialtyShops
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "womens_ready_to_wear_stores")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWomensReadyToWearStores
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wrecking_and_salvage_yards")
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    then Issuing'cardholderAuthorizationControls'BlockedCategories'EnumStringWreckingAndSalvageYards
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    else Issuing'cardholderAuthorizationControls'BlockedCategories'EnumOther val)
-- | Defines the data type for the schema issuing.cardholderCompany\'
-- 
-- Additional information about a \\\`business_entity\\\` cardholder.
data Issuing'cardholderCompany' = Issuing'cardholderCompany' {
  -- | tax_id_provided: Whether the company\'s business ID number was provided.
  issuing'cardholderCompany'TaxIdProvided :: (GHC.Maybe.Maybe GHC.Types.Bool)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderCompany'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "tax_id_provided" (issuing'cardholderCompany'TaxIdProvided obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "tax_id_provided" (issuing'cardholderCompany'TaxIdProvided obj))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardholderCompany'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardholderCompany'" (\obj -> GHC.Base.pure Issuing'cardholderCompany' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_id_provided"))
-- | Defines the data type for the schema issuing.cardholderIndividual\'
-- 
-- Additional information about an \\\`individual\\\` cardholder.
data Issuing'cardholderIndividual' = Issuing'cardholderIndividual' {
  -- | dob: The date of birth of this cardholder.
  issuing'cardholderIndividual'Dob :: (GHC.Maybe.Maybe Issuing'cardholderIndividual'Dob')
  -- | first_name: The first name of this cardholder.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardholderIndividual'FirstName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | last_name: The last name of this cardholder.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'cardholderIndividual'LastName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verification: Government-issued ID document for this cardholder.
  , issuing'cardholderIndividual'Verification :: (GHC.Maybe.Maybe Issuing'cardholderIndividual'Verification')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderIndividual'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dob" (issuing'cardholderIndividual'Dob obj) : (Data.Aeson..=) "first_name" (issuing'cardholderIndividual'FirstName obj) : (Data.Aeson..=) "last_name" (issuing'cardholderIndividual'LastName obj) : (Data.Aeson..=) "verification" (issuing'cardholderIndividual'Verification obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dob" (issuing'cardholderIndividual'Dob obj) GHC.Base.<> ((Data.Aeson..=) "first_name" (issuing'cardholderIndividual'FirstName obj) GHC.Base.<> ((Data.Aeson..=) "last_name" (issuing'cardholderIndividual'LastName obj) GHC.Base.<> (Data.Aeson..=) "verification" (issuing'cardholderIndividual'Verification obj))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardholderIndividual'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardholderIndividual'" (\obj -> (((GHC.Base.pure Issuing'cardholderIndividual' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dob")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "first_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verification"))
-- | Defines the data type for the schema issuing.cardholderIndividual\'Dob\'
-- 
-- The date of birth of this cardholder.
data Issuing'cardholderIndividual'Dob' = Issuing'cardholderIndividual'Dob' {
  -- | day: The day of birth, between 1 and 31.
  issuing'cardholderIndividual'Dob'Day :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | month: The month of birth, between 1 and 12.
  , issuing'cardholderIndividual'Dob'Month :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | year: The four-digit year of birth.
  , issuing'cardholderIndividual'Dob'Year :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderIndividual'Dob'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "day" (issuing'cardholderIndividual'Dob'Day obj) : (Data.Aeson..=) "month" (issuing'cardholderIndividual'Dob'Month obj) : (Data.Aeson..=) "year" (issuing'cardholderIndividual'Dob'Year obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "day" (issuing'cardholderIndividual'Dob'Day obj) GHC.Base.<> ((Data.Aeson..=) "month" (issuing'cardholderIndividual'Dob'Month obj) GHC.Base.<> (Data.Aeson..=) "year" (issuing'cardholderIndividual'Dob'Year obj)))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardholderIndividual'Dob'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardholderIndividual'Dob'" (\obj -> ((GHC.Base.pure Issuing'cardholderIndividual'Dob' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "day")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "year"))
-- | Defines the data type for the schema issuing.cardholderIndividual\'Verification\'
-- 
-- Government-issued ID document for this cardholder.
data Issuing'cardholderIndividual'Verification' = Issuing'cardholderIndividual'Verification' {
  -- | document: An identifying document, either a passport or local ID card.
  issuing'cardholderIndividual'Verification'Document :: (GHC.Maybe.Maybe Issuing'cardholderIndividual'Verification'Document')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderIndividual'Verification'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "document" (issuing'cardholderIndividual'Verification'Document obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "document" (issuing'cardholderIndividual'Verification'Document obj))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardholderIndividual'Verification'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardholderIndividual'Verification'" (\obj -> GHC.Base.pure Issuing'cardholderIndividual'Verification' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "document"))
-- | Defines the data type for the schema issuing.cardholderIndividual\'Verification\'Document\'
-- 
-- An identifying document, either a passport or local ID card.
data Issuing'cardholderIndividual'Verification'Document' = Issuing'cardholderIndividual'Verification'Document' {
  -- | back: The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  issuing'cardholderIndividual'Verification'Document'Back :: (GHC.Maybe.Maybe Issuing'cardholderIndividual'Verification'Document'Back'Variants)
  -- | front: The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  , issuing'cardholderIndividual'Verification'Document'Front :: (GHC.Maybe.Maybe Issuing'cardholderIndividual'Verification'Document'Front'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderIndividual'Verification'Document'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "back" (issuing'cardholderIndividual'Verification'Document'Back obj) : (Data.Aeson..=) "front" (issuing'cardholderIndividual'Verification'Document'Front obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "back" (issuing'cardholderIndividual'Verification'Document'Back obj) GHC.Base.<> (Data.Aeson..=) "front" (issuing'cardholderIndividual'Verification'Document'Front obj))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardholderIndividual'Verification'Document'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardholderIndividual'Verification'Document'" (\obj -> (GHC.Base.pure Issuing'cardholderIndividual'Verification'Document' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "back")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "front"))
-- | Define the one-of schema issuing.cardholderIndividual\'Verification\'Document\'Back\'
-- 
-- The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data Issuing'cardholderIndividual'Verification'Document'Back'Variants
    = Issuing'cardholderIndividual'Verification'Document'Back'File File
    | Issuing'cardholderIndividual'Verification'Document'Back'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'cardholderIndividual'Verification'Document'Back'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'cardholderIndividual'Verification'Document'Back'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema issuing.cardholderIndividual\'Verification\'Document\'Front\'
-- 
-- The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data Issuing'cardholderIndividual'Verification'Document'Front'Variants
    = Issuing'cardholderIndividual'Verification'Document'Front'File File
    | Issuing'cardholderIndividual'Verification'Document'Front'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'cardholderIndividual'Verification'Document'Front'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'cardholderIndividual'Verification'Document'Front'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing.cardholderMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data Issuing'cardholderMetadata' = Issuing'cardholderMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'cardholderMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'cardholderMetadata'" (\obj -> GHC.Base.pure Issuing'cardholderMetadata')
-- | Defines the enum schema issuing.cardholderObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Issuing'cardholderObject'
    = Issuing'cardholderObject'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardholderObject'EnumTyped GHC.Base.String
    | Issuing'cardholderObject'EnumStringIssuing'cardholder
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderObject'
    where toJSON (Issuing'cardholderObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardholderObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardholderObject'EnumStringIssuing'cardholder) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.cardholder"
instance Data.Aeson.FromJSON Issuing'cardholderObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.cardholder")
                                          then Issuing'cardholderObject'EnumStringIssuing'cardholder
                                          else Issuing'cardholderObject'EnumOther val)
-- | Defines the enum schema issuing.cardholderStatus\'
-- 
-- Specifies whether to permit authorizations on this cardholder\'s cards.
data Issuing'cardholderStatus'
    = Issuing'cardholderStatus'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardholderStatus'EnumTyped GHC.Base.String
    | Issuing'cardholderStatus'EnumStringActive
    | Issuing'cardholderStatus'EnumStringBlocked
    | Issuing'cardholderStatus'EnumStringInactive
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderStatus'
    where toJSON (Issuing'cardholderStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardholderStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardholderStatus'EnumStringActive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active"
          toJSON (Issuing'cardholderStatus'EnumStringBlocked) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "blocked"
          toJSON (Issuing'cardholderStatus'EnumStringInactive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "inactive"
instance Data.Aeson.FromJSON Issuing'cardholderStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active")
                                          then Issuing'cardholderStatus'EnumStringActive
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "blocked")
                                                then Issuing'cardholderStatus'EnumStringBlocked
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "inactive")
                                                      then Issuing'cardholderStatus'EnumStringInactive
                                                      else Issuing'cardholderStatus'EnumOther val)
-- | Defines the enum schema issuing.cardholderType\'
-- 
-- One of \`individual\` or \`business_entity\`.
data Issuing'cardholderType'
    = Issuing'cardholderType'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'cardholderType'EnumTyped GHC.Base.String
    | Issuing'cardholderType'EnumStringBusinessEntity
    | Issuing'cardholderType'EnumStringIndividual
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'cardholderType'
    where toJSON (Issuing'cardholderType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardholderType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'cardholderType'EnumStringBusinessEntity) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_entity"
          toJSON (Issuing'cardholderType'EnumStringIndividual) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "individual"
instance Data.Aeson.FromJSON Issuing'cardholderType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "business_entity")
                                          then Issuing'cardholderType'EnumStringBusinessEntity
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "individual")
                                                then Issuing'cardholderType'EnumStringIndividual
                                                else Issuing'cardholderType'EnumOther val)
-- | Defines the data type for the schema issuing.dispute
-- 
-- As a [card issuer](https:\/\/stripe.com\/docs\/issuing), you can [dispute](https:\/\/stripe.com\/docs\/issuing\/disputes) transactions that you do not recognize, suspect to be fraudulent, or have some other issue.
-- 
-- Related guide: [Disputing Transactions](https:\/\/stripe.com\/docs\/issuing\/disputes)
data Issuing'dispute = Issuing'dispute {
  -- | amount: Disputed amount. Usually the amount of the \`disputed_transaction\`, but can differ (usually because of currency fluctuation or because only part of the order is disputed).
  issuing'disputeAmount :: GHC.Integer.Type.Integer
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , issuing'disputeCreated :: GHC.Integer.Type.Integer
  -- | currency: The currency the \`disputed_transaction\` was made in.
  , issuing'disputeCurrency :: GHC.Base.String
  -- | disputed_transaction: The transaction being disputed.
  , issuing'disputeDisputedTransaction :: Issuing'disputeDisputedTransaction'Variants
  -- | evidence: 
  , issuing'disputeEvidence :: IssuingDisputeEvidence
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'disputeId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , issuing'disputeLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , issuing'disputeMetadata :: Issuing'disputeMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , issuing'disputeObject :: Issuing'disputeObject'
  -- | reason: Reason for this dispute. One of \`duplicate\`, \`product_not_received\`, \`fraudulent\`, or \`other\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'disputeReason :: GHC.Base.String
  -- | status: Current status of dispute. One of \`unsubmitted\`, \`under_review\`, \`won\`, or \`lost\`.
  , issuing'disputeStatus :: Issuing'disputeStatus'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'dispute
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (issuing'disputeAmount obj) : (Data.Aeson..=) "created" (issuing'disputeCreated obj) : (Data.Aeson..=) "currency" (issuing'disputeCurrency obj) : (Data.Aeson..=) "disputed_transaction" (issuing'disputeDisputedTransaction obj) : (Data.Aeson..=) "evidence" (issuing'disputeEvidence obj) : (Data.Aeson..=) "id" (issuing'disputeId obj) : (Data.Aeson..=) "livemode" (issuing'disputeLivemode obj) : (Data.Aeson..=) "metadata" (issuing'disputeMetadata obj) : (Data.Aeson..=) "object" (issuing'disputeObject obj) : (Data.Aeson..=) "reason" (issuing'disputeReason obj) : (Data.Aeson..=) "status" (issuing'disputeStatus obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (issuing'disputeAmount obj) GHC.Base.<> ((Data.Aeson..=) "created" (issuing'disputeCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (issuing'disputeCurrency obj) GHC.Base.<> ((Data.Aeson..=) "disputed_transaction" (issuing'disputeDisputedTransaction obj) GHC.Base.<> ((Data.Aeson..=) "evidence" (issuing'disputeEvidence obj) GHC.Base.<> ((Data.Aeson..=) "id" (issuing'disputeId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (issuing'disputeLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (issuing'disputeMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (issuing'disputeObject obj) GHC.Base.<> ((Data.Aeson..=) "reason" (issuing'disputeReason obj) GHC.Base.<> (Data.Aeson..=) "status" (issuing'disputeStatus obj)))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'dispute
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'dispute" (\obj -> ((((((((((GHC.Base.pure Issuing'dispute GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "disputed_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "evidence")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status"))
-- | Define the one-of schema issuing.disputeDisputed_transaction\'
-- 
-- The transaction being disputed.
data Issuing'disputeDisputedTransaction'Variants
    = Issuing'disputeDisputedTransaction'Issuing'transaction Issuing'transaction
    | Issuing'disputeDisputedTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'disputeDisputedTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'disputeDisputedTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing.disputeMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data Issuing'disputeMetadata' = Issuing'disputeMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'disputeMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'disputeMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'disputeMetadata'" (\obj -> GHC.Base.pure Issuing'disputeMetadata')
-- | Defines the enum schema issuing.disputeObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Issuing'disputeObject'
    = Issuing'disputeObject'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'disputeObject'EnumTyped GHC.Base.String
    | Issuing'disputeObject'EnumStringIssuing'dispute
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'disputeObject'
    where toJSON (Issuing'disputeObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'disputeObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'disputeObject'EnumStringIssuing'dispute) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.dispute"
instance Data.Aeson.FromJSON Issuing'disputeObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.dispute")
                                          then Issuing'disputeObject'EnumStringIssuing'dispute
                                          else Issuing'disputeObject'EnumOther val)
-- | Defines the enum schema issuing.disputeStatus\'
-- 
-- Current status of dispute. One of \`unsubmitted\`, \`under_review\`, \`won\`, or \`lost\`.
data Issuing'disputeStatus'
    = Issuing'disputeStatus'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'disputeStatus'EnumTyped GHC.Base.String
    | Issuing'disputeStatus'EnumStringLost
    | Issuing'disputeStatus'EnumStringUnderReview
    | Issuing'disputeStatus'EnumStringUnsubmitted
    | Issuing'disputeStatus'EnumStringWon
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'disputeStatus'
    where toJSON (Issuing'disputeStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'disputeStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'disputeStatus'EnumStringLost) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lost"
          toJSON (Issuing'disputeStatus'EnumStringUnderReview) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "under_review"
          toJSON (Issuing'disputeStatus'EnumStringUnsubmitted) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unsubmitted"
          toJSON (Issuing'disputeStatus'EnumStringWon) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "won"
instance Data.Aeson.FromJSON Issuing'disputeStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "lost")
                                          then Issuing'disputeStatus'EnumStringLost
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "under_review")
                                                then Issuing'disputeStatus'EnumStringUnderReview
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unsubmitted")
                                                      then Issuing'disputeStatus'EnumStringUnsubmitted
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "won")
                                                            then Issuing'disputeStatus'EnumStringWon
                                                            else Issuing'disputeStatus'EnumOther val)
-- | Defines the data type for the schema issuing.transaction
-- 
-- Any use of an [issued card](https:\/\/stripe.com\/docs\/issuing) that results in funds entering or leaving
-- your Stripe account, such as a completed purchase or refund, is represented by an Issuing
-- \`Transaction\` object.
-- 
-- Related guide: [Issued Card Transactions](https:\/\/stripe.com\/docs\/issuing\/transactions).
data Issuing'transaction = Issuing'transaction {
  -- | amount: The amount of this transaction in your currency. This is the amount that your balance will be updated by.
  issuing'transactionAmount :: GHC.Integer.Type.Integer
  -- | authorization: The \`Authorization\` object that led to this transaction.
  , issuing'transactionAuthorization :: (GHC.Maybe.Maybe Issuing'transactionAuthorization'Variants)
  -- | balance_transaction: ID of the [balance transaction](https:\/\/stripe.com\/docs\/api\/balance_transactions) associated with this transaction.
  , issuing'transactionBalanceTransaction :: (GHC.Maybe.Maybe Issuing'transactionBalanceTransaction'Variants)
  -- | card: The card used to make this transaction.
  , issuing'transactionCard :: Issuing'transactionCard'Variants
  -- | cardholder: The cardholder to whom this transaction belongs.
  , issuing'transactionCardholder :: (GHC.Maybe.Maybe Issuing'transactionCardholder'Variants)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , issuing'transactionCreated :: GHC.Integer.Type.Integer
  -- | currency: Three-letter [ISO currency code](https:\/\/www.iso.org\/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https:\/\/stripe.com\/docs\/currencies).
  , issuing'transactionCurrency :: GHC.Base.String
  -- | dispute: If you\'ve disputed the transaction, the ID of the [dispute object](https:\/\/stripe.com\/docs\/api\/issuing\/disputes\/object).
  , issuing'transactionDispute :: (GHC.Maybe.Maybe Issuing'transactionDispute'Variants)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuing'transactionId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , issuing'transactionLivemode :: GHC.Types.Bool
  -- | merchant_amount: The amount that the merchant will receive, denominated in \`merchant_currency\`. It will be different from \`amount\` if the merchant is taking payment in a different currency.
  , issuing'transactionMerchantAmount :: GHC.Integer.Type.Integer
  -- | merchant_currency: The currency with which the merchant is taking payment.
  , issuing'transactionMerchantCurrency :: GHC.Base.String
  -- | merchant_data: 
  , issuing'transactionMerchantData :: IssuingAuthorizationMerchantData
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , issuing'transactionMetadata :: Issuing'transactionMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , issuing'transactionObject :: Issuing'transactionObject'
  -- | type: The nature of the transaction.
  , issuing'transactionType :: Issuing'transactionType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'transaction
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (issuing'transactionAmount obj) : (Data.Aeson..=) "authorization" (issuing'transactionAuthorization obj) : (Data.Aeson..=) "balance_transaction" (issuing'transactionBalanceTransaction obj) : (Data.Aeson..=) "card" (issuing'transactionCard obj) : (Data.Aeson..=) "cardholder" (issuing'transactionCardholder obj) : (Data.Aeson..=) "created" (issuing'transactionCreated obj) : (Data.Aeson..=) "currency" (issuing'transactionCurrency obj) : (Data.Aeson..=) "dispute" (issuing'transactionDispute obj) : (Data.Aeson..=) "id" (issuing'transactionId obj) : (Data.Aeson..=) "livemode" (issuing'transactionLivemode obj) : (Data.Aeson..=) "merchant_amount" (issuing'transactionMerchantAmount obj) : (Data.Aeson..=) "merchant_currency" (issuing'transactionMerchantCurrency obj) : (Data.Aeson..=) "merchant_data" (issuing'transactionMerchantData obj) : (Data.Aeson..=) "metadata" (issuing'transactionMetadata obj) : (Data.Aeson..=) "object" (issuing'transactionObject obj) : (Data.Aeson..=) "type" (issuing'transactionType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (issuing'transactionAmount obj) GHC.Base.<> ((Data.Aeson..=) "authorization" (issuing'transactionAuthorization obj) GHC.Base.<> ((Data.Aeson..=) "balance_transaction" (issuing'transactionBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "card" (issuing'transactionCard obj) GHC.Base.<> ((Data.Aeson..=) "cardholder" (issuing'transactionCardholder obj) GHC.Base.<> ((Data.Aeson..=) "created" (issuing'transactionCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (issuing'transactionCurrency obj) GHC.Base.<> ((Data.Aeson..=) "dispute" (issuing'transactionDispute obj) GHC.Base.<> ((Data.Aeson..=) "id" (issuing'transactionId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (issuing'transactionLivemode obj) GHC.Base.<> ((Data.Aeson..=) "merchant_amount" (issuing'transactionMerchantAmount obj) GHC.Base.<> ((Data.Aeson..=) "merchant_currency" (issuing'transactionMerchantCurrency obj) GHC.Base.<> ((Data.Aeson..=) "merchant_data" (issuing'transactionMerchantData obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (issuing'transactionMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (issuing'transactionObject obj) GHC.Base.<> (Data.Aeson..=) "type" (issuing'transactionType obj))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transaction
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'transaction" (\obj -> (((((((((((((((GHC.Base.pure Issuing'transaction GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "authorization")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cardholder")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dispute")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "merchant_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "merchant_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "merchant_data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Define the one-of schema issuing.transactionAuthorization\'
-- 
-- The \`Authorization\` object that led to this transaction.
data Issuing'transactionAuthorization'Variants
    = Issuing'transactionAuthorization'Issuing'authorization Issuing'authorization
    | Issuing'transactionAuthorization'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'transactionAuthorization'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'transactionAuthorization'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema issuing.transactionBalance_transaction\'
-- 
-- ID of the [balance transaction](https:\/\/stripe.com\/docs\/api\/balance_transactions) associated with this transaction.
data Issuing'transactionBalanceTransaction'Variants
    = Issuing'transactionBalanceTransaction'BalanceTransaction BalanceTransaction
    | Issuing'transactionBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'transactionBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'transactionBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema issuing.transactionCard\'
-- 
-- The card used to make this transaction.
data Issuing'transactionCard'Variants
    = Issuing'transactionCard'Issuing'card Issuing'card
    | Issuing'transactionCard'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'transactionCard'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'transactionCard'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema issuing.transactionCardholder\'
-- 
-- The cardholder to whom this transaction belongs.
data Issuing'transactionCardholder'Variants
    = Issuing'transactionCardholder'Issuing'cardholder Issuing'cardholder
    | Issuing'transactionCardholder'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'transactionCardholder'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'transactionCardholder'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema issuing.transactionDispute\'
-- 
-- If you\'ve disputed the transaction, the ID of the [dispute object](https:\/\/stripe.com\/docs\/api\/issuing\/disputes\/object).
data Issuing'transactionDispute'Variants
    = Issuing'transactionDispute'Issuing'dispute Issuing'dispute
    | Issuing'transactionDispute'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Issuing'transactionDispute'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Issuing'transactionDispute'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing.transactionMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data Issuing'transactionMetadata' = Issuing'transactionMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'transactionMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'transactionMetadata'" (\obj -> GHC.Base.pure Issuing'transactionMetadata')
-- | Defines the enum schema issuing.transactionObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Issuing'transactionObject'
    = Issuing'transactionObject'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'transactionObject'EnumTyped GHC.Base.String
    | Issuing'transactionObject'EnumStringIssuing'transaction
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'transactionObject'
    where toJSON (Issuing'transactionObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'transactionObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'transactionObject'EnumStringIssuing'transaction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.transaction"
instance Data.Aeson.FromJSON Issuing'transactionObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "issuing.transaction")
                                          then Issuing'transactionObject'EnumStringIssuing'transaction
                                          else Issuing'transactionObject'EnumOther val)
-- | Defines the enum schema issuing.transactionType\'
-- 
-- The nature of the transaction.
data Issuing'transactionType'
    = Issuing'transactionType'EnumOther Data.Aeson.Types.Internal.Value
    | Issuing'transactionType'EnumTyped GHC.Base.String
    | Issuing'transactionType'EnumStringCapture
    | Issuing'transactionType'EnumStringCashWithdrawal
    | Issuing'transactionType'EnumStringDispute
    | Issuing'transactionType'EnumStringDisputeLoss
    | Issuing'transactionType'EnumStringRefund
    | Issuing'transactionType'EnumStringRefundReversal
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Issuing'transactionType'
    where toJSON (Issuing'transactionType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'transactionType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Issuing'transactionType'EnumStringCapture) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "capture"
          toJSON (Issuing'transactionType'EnumStringCashWithdrawal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cash_withdrawal"
          toJSON (Issuing'transactionType'EnumStringDispute) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dispute"
          toJSON (Issuing'transactionType'EnumStringDisputeLoss) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dispute_loss"
          toJSON (Issuing'transactionType'EnumStringRefund) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refund"
          toJSON (Issuing'transactionType'EnumStringRefundReversal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refund_reversal"
instance Data.Aeson.FromJSON Issuing'transactionType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "capture")
                                          then Issuing'transactionType'EnumStringCapture
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cash_withdrawal")
                                                then Issuing'transactionType'EnumStringCashWithdrawal
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dispute")
                                                      then Issuing'transactionType'EnumStringDispute
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "dispute_loss")
                                                            then Issuing'transactionType'EnumStringDisputeLoss
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refund")
                                                                  then Issuing'transactionType'EnumStringRefund
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refund_reversal")
                                                                        then Issuing'transactionType'EnumStringRefundReversal
                                                                        else Issuing'transactionType'EnumOther val)
-- | Defines the data type for the schema issuing_cardholder_id_document
-- 
-- 
data IssuingCardholderIdDocument = IssuingCardholderIdDocument {
  -- | back: The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  issuingCardholderIdDocumentBack :: (GHC.Maybe.Maybe IssuingCardholderIdDocumentBack'Variants)
  -- | front: The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  , issuingCardholderIdDocumentFront :: (GHC.Maybe.Maybe IssuingCardholderIdDocumentFront'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingCardholderIdDocument
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "back" (issuingCardholderIdDocumentBack obj) : (Data.Aeson..=) "front" (issuingCardholderIdDocumentFront obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "back" (issuingCardholderIdDocumentBack obj) GHC.Base.<> (Data.Aeson..=) "front" (issuingCardholderIdDocumentFront obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingCardholderIdDocument
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingCardholderIdDocument" (\obj -> (GHC.Base.pure IssuingCardholderIdDocument GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "back")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "front"))
-- | Define the one-of schema issuing_cardholder_id_documentBack\'
-- 
-- The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data IssuingCardholderIdDocumentBack'Variants
    = IssuingCardholderIdDocumentBack'File File
    | IssuingCardholderIdDocumentBack'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingCardholderIdDocumentBack'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingCardholderIdDocumentBack'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema issuing_cardholder_id_documentFront\'
-- 
-- The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data IssuingCardholderIdDocumentFront'Variants
    = IssuingCardholderIdDocumentFront'File File
    | IssuingCardholderIdDocumentFront'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingCardholderIdDocumentFront'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingCardholderIdDocumentFront'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing_cardholder_individual
-- 
-- 
data IssuingCardholderIndividual = IssuingCardholderIndividual {
  -- | dob: The date of birth of this cardholder.
  issuingCardholderIndividualDob :: (GHC.Maybe.Maybe IssuingCardholderIndividualDob')
  -- | first_name: The first name of this cardholder.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuingCardholderIndividualFirstName :: GHC.Base.String
  -- | last_name: The last name of this cardholder.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuingCardholderIndividualLastName :: GHC.Base.String
  -- | verification: Government-issued ID document for this cardholder.
  , issuingCardholderIndividualVerification :: (GHC.Maybe.Maybe IssuingCardholderIndividualVerification')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingCardholderIndividual
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dob" (issuingCardholderIndividualDob obj) : (Data.Aeson..=) "first_name" (issuingCardholderIndividualFirstName obj) : (Data.Aeson..=) "last_name" (issuingCardholderIndividualLastName obj) : (Data.Aeson..=) "verification" (issuingCardholderIndividualVerification obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dob" (issuingCardholderIndividualDob obj) GHC.Base.<> ((Data.Aeson..=) "first_name" (issuingCardholderIndividualFirstName obj) GHC.Base.<> ((Data.Aeson..=) "last_name" (issuingCardholderIndividualLastName obj) GHC.Base.<> (Data.Aeson..=) "verification" (issuingCardholderIndividualVerification obj))))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingCardholderIndividual
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingCardholderIndividual" (\obj -> (((GHC.Base.pure IssuingCardholderIndividual GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dob")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "first_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "last_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verification"))
-- | Defines the data type for the schema issuing_cardholder_individualDob\'
-- 
-- The date of birth of this cardholder.
data IssuingCardholderIndividualDob' = IssuingCardholderIndividualDob' {
  -- | day: The day of birth, between 1 and 31.
  issuingCardholderIndividualDob'Day :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | month: The month of birth, between 1 and 12.
  , issuingCardholderIndividualDob'Month :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | year: The four-digit year of birth.
  , issuingCardholderIndividualDob'Year :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingCardholderIndividualDob'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "day" (issuingCardholderIndividualDob'Day obj) : (Data.Aeson..=) "month" (issuingCardholderIndividualDob'Month obj) : (Data.Aeson..=) "year" (issuingCardholderIndividualDob'Year obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "day" (issuingCardholderIndividualDob'Day obj) GHC.Base.<> ((Data.Aeson..=) "month" (issuingCardholderIndividualDob'Month obj) GHC.Base.<> (Data.Aeson..=) "year" (issuingCardholderIndividualDob'Year obj)))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingCardholderIndividualDob'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingCardholderIndividualDob'" (\obj -> ((GHC.Base.pure IssuingCardholderIndividualDob' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "day")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "year"))
-- | Defines the data type for the schema issuing_cardholder_individualVerification\'
-- 
-- Government-issued ID document for this cardholder.
data IssuingCardholderIndividualVerification' = IssuingCardholderIndividualVerification' {
  -- | document: An identifying document, either a passport or local ID card.
  issuingCardholderIndividualVerification'Document :: (GHC.Maybe.Maybe IssuingCardholderIndividualVerification'Document')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingCardholderIndividualVerification'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "document" (issuingCardholderIndividualVerification'Document obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "document" (issuingCardholderIndividualVerification'Document obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingCardholderIndividualVerification'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingCardholderIndividualVerification'" (\obj -> GHC.Base.pure IssuingCardholderIndividualVerification' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "document"))
-- | Defines the data type for the schema issuing_cardholder_individualVerification\'Document\'
-- 
-- An identifying document, either a passport or local ID card.
data IssuingCardholderIndividualVerification'Document' = IssuingCardholderIndividualVerification'Document' {
  -- | back: The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  issuingCardholderIndividualVerification'Document'Back :: (GHC.Maybe.Maybe IssuingCardholderIndividualVerification'Document'Back'Variants)
  -- | front: The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  , issuingCardholderIndividualVerification'Document'Front :: (GHC.Maybe.Maybe IssuingCardholderIndividualVerification'Document'Front'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingCardholderIndividualVerification'Document'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "back" (issuingCardholderIndividualVerification'Document'Back obj) : (Data.Aeson..=) "front" (issuingCardholderIndividualVerification'Document'Front obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "back" (issuingCardholderIndividualVerification'Document'Back obj) GHC.Base.<> (Data.Aeson..=) "front" (issuingCardholderIndividualVerification'Document'Front obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingCardholderIndividualVerification'Document'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingCardholderIndividualVerification'Document'" (\obj -> (GHC.Base.pure IssuingCardholderIndividualVerification'Document' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "back")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "front"))
-- | Define the one-of schema issuing_cardholder_individualVerification\'Document\'Back\'
-- 
-- The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data IssuingCardholderIndividualVerification'Document'Back'Variants
    = IssuingCardholderIndividualVerification'Document'Back'File File
    | IssuingCardholderIndividualVerification'Document'Back'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingCardholderIndividualVerification'Document'Back'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingCardholderIndividualVerification'Document'Back'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema issuing_cardholder_individualVerification\'Document\'Front\'
-- 
-- The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data IssuingCardholderIndividualVerification'Document'Front'Variants
    = IssuingCardholderIndividualVerification'Document'Front'File File
    | IssuingCardholderIndividualVerification'Document'Front'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingCardholderIndividualVerification'Document'Front'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingCardholderIndividualVerification'Document'Front'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing_cardholder_verification
-- 
-- 
data IssuingCardholderVerification = IssuingCardholderVerification {
  -- | document: An identifying document, either a passport or local ID card.
  issuingCardholderVerificationDocument :: (GHC.Maybe.Maybe IssuingCardholderVerificationDocument')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingCardholderVerification
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "document" (issuingCardholderVerificationDocument obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "document" (issuingCardholderVerificationDocument obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingCardholderVerification
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingCardholderVerification" (\obj -> GHC.Base.pure IssuingCardholderVerification GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "document"))
-- | Defines the data type for the schema issuing_cardholder_verificationDocument\'
-- 
-- An identifying document, either a passport or local ID card.
data IssuingCardholderVerificationDocument' = IssuingCardholderVerificationDocument' {
  -- | back: The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  issuingCardholderVerificationDocument'Back :: (GHC.Maybe.Maybe IssuingCardholderVerificationDocument'Back'Variants)
  -- | front: The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  , issuingCardholderVerificationDocument'Front :: (GHC.Maybe.Maybe IssuingCardholderVerificationDocument'Front'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingCardholderVerificationDocument'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "back" (issuingCardholderVerificationDocument'Back obj) : (Data.Aeson..=) "front" (issuingCardholderVerificationDocument'Front obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "back" (issuingCardholderVerificationDocument'Back obj) GHC.Base.<> (Data.Aeson..=) "front" (issuingCardholderVerificationDocument'Front obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingCardholderVerificationDocument'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingCardholderVerificationDocument'" (\obj -> (GHC.Base.pure IssuingCardholderVerificationDocument' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "back")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "front"))
-- | Define the one-of schema issuing_cardholder_verificationDocument\'Back\'
-- 
-- The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data IssuingCardholderVerificationDocument'Back'Variants
    = IssuingCardholderVerificationDocument'Back'File File
    | IssuingCardholderVerificationDocument'Back'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingCardholderVerificationDocument'Back'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingCardholderVerificationDocument'Back'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema issuing_cardholder_verificationDocument\'Front\'
-- 
-- The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data IssuingCardholderVerificationDocument'Front'Variants
    = IssuingCardholderVerificationDocument'Front'File File
    | IssuingCardholderVerificationDocument'Front'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingCardholderVerificationDocument'Front'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingCardholderVerificationDocument'Front'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing_dispute_duplicate_evidence
-- 
-- 
data IssuingDisputeDuplicateEvidence = IssuingDisputeDuplicateEvidence {
  -- | dispute_explanation: Brief freeform text explaining why you are disputing this transaction.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  issuingDisputeDuplicateEvidenceDisputeExplanation :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | original_transaction: Transaction (e.g., ipi_...) that the disputed transaction is a duplicate of. Of the two or more transactions that are copies of each other, this is original undisputed one.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuingDisputeDuplicateEvidenceOriginalTransaction :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | uncategorized_file: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
  , issuingDisputeDuplicateEvidenceUncategorizedFile :: (GHC.Maybe.Maybe IssuingDisputeDuplicateEvidenceUncategorizedFile'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingDisputeDuplicateEvidence
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dispute_explanation" (issuingDisputeDuplicateEvidenceDisputeExplanation obj) : (Data.Aeson..=) "original_transaction" (issuingDisputeDuplicateEvidenceOriginalTransaction obj) : (Data.Aeson..=) "uncategorized_file" (issuingDisputeDuplicateEvidenceUncategorizedFile obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dispute_explanation" (issuingDisputeDuplicateEvidenceDisputeExplanation obj) GHC.Base.<> ((Data.Aeson..=) "original_transaction" (issuingDisputeDuplicateEvidenceOriginalTransaction obj) GHC.Base.<> (Data.Aeson..=) "uncategorized_file" (issuingDisputeDuplicateEvidenceUncategorizedFile obj)))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeDuplicateEvidence
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingDisputeDuplicateEvidence" (\obj -> ((GHC.Base.pure IssuingDisputeDuplicateEvidence GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dispute_explanation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "original_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncategorized_file"))
-- | Define the one-of schema issuing_dispute_duplicate_evidenceUncategorized_file\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
data IssuingDisputeDuplicateEvidenceUncategorizedFile'Variants
    = IssuingDisputeDuplicateEvidenceUncategorizedFile'File File
    | IssuingDisputeDuplicateEvidenceUncategorizedFile'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingDisputeDuplicateEvidenceUncategorizedFile'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingDisputeDuplicateEvidenceUncategorizedFile'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing_dispute_evidence
-- 
-- 
data IssuingDisputeEvidence = IssuingDisputeEvidence {
  -- | duplicate: Evidence to support a duplicate product dispute. This will only be present if your dispute\'s \`reason\` is \`duplicate\`.
  issuingDisputeEvidenceDuplicate :: (GHC.Maybe.Maybe IssuingDisputeEvidenceDuplicate')
  -- | fraudulent: Evidence to support a fraudulent dispute. This will only be present if your dispute\'s \`reason\` is \`fraudulent\`.
  , issuingDisputeEvidenceFraudulent :: (GHC.Maybe.Maybe IssuingDisputeEvidenceFraudulent')
  -- | other: Evidence to support an uncategorized dispute. This will only be present if your dispute\'s \`reason\` is \`other\`.
  , issuingDisputeEvidenceOther :: (GHC.Maybe.Maybe IssuingDisputeEvidenceOther')
  -- | product_not_received: Evidence to support a dispute where the product wasn\'t received. This will only be present if your dispute\'s \`reason\` is \`product_not_received\`.
  , issuingDisputeEvidenceProductNotReceived :: (GHC.Maybe.Maybe IssuingDisputeEvidenceProductNotReceived')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingDisputeEvidence
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "duplicate" (issuingDisputeEvidenceDuplicate obj) : (Data.Aeson..=) "fraudulent" (issuingDisputeEvidenceFraudulent obj) : (Data.Aeson..=) "other" (issuingDisputeEvidenceOther obj) : (Data.Aeson..=) "product_not_received" (issuingDisputeEvidenceProductNotReceived obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "duplicate" (issuingDisputeEvidenceDuplicate obj) GHC.Base.<> ((Data.Aeson..=) "fraudulent" (issuingDisputeEvidenceFraudulent obj) GHC.Base.<> ((Data.Aeson..=) "other" (issuingDisputeEvidenceOther obj) GHC.Base.<> (Data.Aeson..=) "product_not_received" (issuingDisputeEvidenceProductNotReceived obj))))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeEvidence
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingDisputeEvidence" (\obj -> (((GHC.Base.pure IssuingDisputeEvidence GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "duplicate")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fraudulent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "other")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "product_not_received"))
-- | Defines the data type for the schema issuing_dispute_evidenceDuplicate\'
-- 
-- Evidence to support a duplicate product dispute. This will only be present if your dispute\\\'s \\\`reason\\\` is \\\`duplicate\\\`.
data IssuingDisputeEvidenceDuplicate' = IssuingDisputeEvidenceDuplicate' {
  -- | dispute_explanation: Brief freeform text explaining why you are disputing this transaction.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  issuingDisputeEvidenceDuplicate'DisputeExplanation :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | original_transaction: Transaction (e.g., ipi_...) that the disputed transaction is a duplicate of. Of the two or more transactions that are copies of each other, this is original undisputed one.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , issuingDisputeEvidenceDuplicate'OriginalTransaction :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | uncategorized_file: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
  , issuingDisputeEvidenceDuplicate'UncategorizedFile :: (GHC.Maybe.Maybe IssuingDisputeEvidenceDuplicate'UncategorizedFile'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingDisputeEvidenceDuplicate'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dispute_explanation" (issuingDisputeEvidenceDuplicate'DisputeExplanation obj) : (Data.Aeson..=) "original_transaction" (issuingDisputeEvidenceDuplicate'OriginalTransaction obj) : (Data.Aeson..=) "uncategorized_file" (issuingDisputeEvidenceDuplicate'UncategorizedFile obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dispute_explanation" (issuingDisputeEvidenceDuplicate'DisputeExplanation obj) GHC.Base.<> ((Data.Aeson..=) "original_transaction" (issuingDisputeEvidenceDuplicate'OriginalTransaction obj) GHC.Base.<> (Data.Aeson..=) "uncategorized_file" (issuingDisputeEvidenceDuplicate'UncategorizedFile obj)))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeEvidenceDuplicate'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingDisputeEvidenceDuplicate'" (\obj -> ((GHC.Base.pure IssuingDisputeEvidenceDuplicate' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dispute_explanation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "original_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncategorized_file"))
-- | Define the one-of schema issuing_dispute_evidenceDuplicate\'Uncategorized_file\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
data IssuingDisputeEvidenceDuplicate'UncategorizedFile'Variants
    = IssuingDisputeEvidenceDuplicate'UncategorizedFile'File File
    | IssuingDisputeEvidenceDuplicate'UncategorizedFile'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingDisputeEvidenceDuplicate'UncategorizedFile'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingDisputeEvidenceDuplicate'UncategorizedFile'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing_dispute_evidenceFraudulent\'
-- 
-- Evidence to support a fraudulent dispute. This will only be present if your dispute\\\'s \\\`reason\\\` is \\\`fraudulent\\\`.
data IssuingDisputeEvidenceFraudulent' = IssuingDisputeEvidenceFraudulent' {
  -- | dispute_explanation: Brief freeform text explaining why you are disputing this transaction.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  issuingDisputeEvidenceFraudulent'DisputeExplanation :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | uncategorized_file: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
  , issuingDisputeEvidenceFraudulent'UncategorizedFile :: (GHC.Maybe.Maybe IssuingDisputeEvidenceFraudulent'UncategorizedFile'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingDisputeEvidenceFraudulent'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dispute_explanation" (issuingDisputeEvidenceFraudulent'DisputeExplanation obj) : (Data.Aeson..=) "uncategorized_file" (issuingDisputeEvidenceFraudulent'UncategorizedFile obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dispute_explanation" (issuingDisputeEvidenceFraudulent'DisputeExplanation obj) GHC.Base.<> (Data.Aeson..=) "uncategorized_file" (issuingDisputeEvidenceFraudulent'UncategorizedFile obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeEvidenceFraudulent'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingDisputeEvidenceFraudulent'" (\obj -> (GHC.Base.pure IssuingDisputeEvidenceFraudulent' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dispute_explanation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncategorized_file"))
-- | Define the one-of schema issuing_dispute_evidenceFraudulent\'Uncategorized_file\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
data IssuingDisputeEvidenceFraudulent'UncategorizedFile'Variants
    = IssuingDisputeEvidenceFraudulent'UncategorizedFile'File File
    | IssuingDisputeEvidenceFraudulent'UncategorizedFile'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingDisputeEvidenceFraudulent'UncategorizedFile'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingDisputeEvidenceFraudulent'UncategorizedFile'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing_dispute_evidenceOther\'
-- 
-- Evidence to support an uncategorized dispute. This will only be present if your dispute\\\'s \\\`reason\\\` is \\\`other\\\`.
data IssuingDisputeEvidenceOther' = IssuingDisputeEvidenceOther' {
  -- | dispute_explanation: Brief freeform text explaining why you are disputing this transaction.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  issuingDisputeEvidenceOther'DisputeExplanation :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | uncategorized_file: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
  , issuingDisputeEvidenceOther'UncategorizedFile :: (GHC.Maybe.Maybe IssuingDisputeEvidenceOther'UncategorizedFile'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingDisputeEvidenceOther'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dispute_explanation" (issuingDisputeEvidenceOther'DisputeExplanation obj) : (Data.Aeson..=) "uncategorized_file" (issuingDisputeEvidenceOther'UncategorizedFile obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dispute_explanation" (issuingDisputeEvidenceOther'DisputeExplanation obj) GHC.Base.<> (Data.Aeson..=) "uncategorized_file" (issuingDisputeEvidenceOther'UncategorizedFile obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeEvidenceOther'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingDisputeEvidenceOther'" (\obj -> (GHC.Base.pure IssuingDisputeEvidenceOther' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dispute_explanation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncategorized_file"))
-- | Define the one-of schema issuing_dispute_evidenceOther\'Uncategorized_file\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
data IssuingDisputeEvidenceOther'UncategorizedFile'Variants
    = IssuingDisputeEvidenceOther'UncategorizedFile'File File
    | IssuingDisputeEvidenceOther'UncategorizedFile'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingDisputeEvidenceOther'UncategorizedFile'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingDisputeEvidenceOther'UncategorizedFile'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing_dispute_evidenceProduct_not_received\'
-- 
-- Evidence to support a dispute where the product wasn\\\'t received. This will only be present if your dispute\\\'s \\\`reason\\\` is \\\`product_not_received\\\`.
data IssuingDisputeEvidenceProductNotReceived' = IssuingDisputeEvidenceProductNotReceived' {
  -- | dispute_explanation: Brief freeform text explaining why you are disputing this transaction.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  issuingDisputeEvidenceProductNotReceived'DisputeExplanation :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | uncategorized_file: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
  , issuingDisputeEvidenceProductNotReceived'UncategorizedFile :: (GHC.Maybe.Maybe IssuingDisputeEvidenceProductNotReceived'UncategorizedFile'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingDisputeEvidenceProductNotReceived'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dispute_explanation" (issuingDisputeEvidenceProductNotReceived'DisputeExplanation obj) : (Data.Aeson..=) "uncategorized_file" (issuingDisputeEvidenceProductNotReceived'UncategorizedFile obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dispute_explanation" (issuingDisputeEvidenceProductNotReceived'DisputeExplanation obj) GHC.Base.<> (Data.Aeson..=) "uncategorized_file" (issuingDisputeEvidenceProductNotReceived'UncategorizedFile obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeEvidenceProductNotReceived'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingDisputeEvidenceProductNotReceived'" (\obj -> (GHC.Base.pure IssuingDisputeEvidenceProductNotReceived' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dispute_explanation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncategorized_file"))
-- | Define the one-of schema issuing_dispute_evidenceProduct_not_received\'Uncategorized_file\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
data IssuingDisputeEvidenceProductNotReceived'UncategorizedFile'Variants
    = IssuingDisputeEvidenceProductNotReceived'UncategorizedFile'File File
    | IssuingDisputeEvidenceProductNotReceived'UncategorizedFile'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingDisputeEvidenceProductNotReceived'UncategorizedFile'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingDisputeEvidenceProductNotReceived'UncategorizedFile'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing_dispute_fraudulent_evidence
-- 
-- 
data IssuingDisputeFraudulentEvidence = IssuingDisputeFraudulentEvidence {
  -- | dispute_explanation: Brief freeform text explaining why you are disputing this transaction.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  issuingDisputeFraudulentEvidenceDisputeExplanation :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | uncategorized_file: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
  , issuingDisputeFraudulentEvidenceUncategorizedFile :: (GHC.Maybe.Maybe IssuingDisputeFraudulentEvidenceUncategorizedFile'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingDisputeFraudulentEvidence
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dispute_explanation" (issuingDisputeFraudulentEvidenceDisputeExplanation obj) : (Data.Aeson..=) "uncategorized_file" (issuingDisputeFraudulentEvidenceUncategorizedFile obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dispute_explanation" (issuingDisputeFraudulentEvidenceDisputeExplanation obj) GHC.Base.<> (Data.Aeson..=) "uncategorized_file" (issuingDisputeFraudulentEvidenceUncategorizedFile obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeFraudulentEvidence
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingDisputeFraudulentEvidence" (\obj -> (GHC.Base.pure IssuingDisputeFraudulentEvidence GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dispute_explanation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncategorized_file"))
-- | Define the one-of schema issuing_dispute_fraudulent_evidenceUncategorized_file\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
data IssuingDisputeFraudulentEvidenceUncategorizedFile'Variants
    = IssuingDisputeFraudulentEvidenceUncategorizedFile'File File
    | IssuingDisputeFraudulentEvidenceUncategorizedFile'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingDisputeFraudulentEvidenceUncategorizedFile'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingDisputeFraudulentEvidenceUncategorizedFile'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing_dispute_other_evidence
-- 
-- 
data IssuingDisputeOtherEvidence = IssuingDisputeOtherEvidence {
  -- | dispute_explanation: Brief freeform text explaining why you are disputing this transaction.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  issuingDisputeOtherEvidenceDisputeExplanation :: GHC.Base.String
  -- | uncategorized_file: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
  , issuingDisputeOtherEvidenceUncategorizedFile :: (GHC.Maybe.Maybe IssuingDisputeOtherEvidenceUncategorizedFile'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingDisputeOtherEvidence
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dispute_explanation" (issuingDisputeOtherEvidenceDisputeExplanation obj) : (Data.Aeson..=) "uncategorized_file" (issuingDisputeOtherEvidenceUncategorizedFile obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dispute_explanation" (issuingDisputeOtherEvidenceDisputeExplanation obj) GHC.Base.<> (Data.Aeson..=) "uncategorized_file" (issuingDisputeOtherEvidenceUncategorizedFile obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeOtherEvidence
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingDisputeOtherEvidence" (\obj -> (GHC.Base.pure IssuingDisputeOtherEvidence GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "dispute_explanation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncategorized_file"))
-- | Define the one-of schema issuing_dispute_other_evidenceUncategorized_file\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
data IssuingDisputeOtherEvidenceUncategorizedFile'Variants
    = IssuingDisputeOtherEvidenceUncategorizedFile'File File
    | IssuingDisputeOtherEvidenceUncategorizedFile'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingDisputeOtherEvidenceUncategorizedFile'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingDisputeOtherEvidenceUncategorizedFile'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema issuing_dispute_product_not_received_evidence
-- 
-- 
data IssuingDisputeProductNotReceivedEvidence = IssuingDisputeProductNotReceivedEvidence {
  -- | dispute_explanation: Brief freeform text explaining why you are disputing this transaction.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  issuingDisputeProductNotReceivedEvidenceDisputeExplanation :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | uncategorized_file: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
  , issuingDisputeProductNotReceivedEvidenceUncategorizedFile :: (GHC.Maybe.Maybe IssuingDisputeProductNotReceivedEvidenceUncategorizedFile'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON IssuingDisputeProductNotReceivedEvidence
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "dispute_explanation" (issuingDisputeProductNotReceivedEvidenceDisputeExplanation obj) : (Data.Aeson..=) "uncategorized_file" (issuingDisputeProductNotReceivedEvidenceUncategorizedFile obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "dispute_explanation" (issuingDisputeProductNotReceivedEvidenceDisputeExplanation obj) GHC.Base.<> (Data.Aeson..=) "uncategorized_file" (issuingDisputeProductNotReceivedEvidenceUncategorizedFile obj))
instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeProductNotReceivedEvidence
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "IssuingDisputeProductNotReceivedEvidence" (\obj -> (GHC.Base.pure IssuingDisputeProductNotReceivedEvidence GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dispute_explanation")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncategorized_file"))
-- | Define the one-of schema issuing_dispute_product_not_received_evidenceUncategorized_file\'
-- 
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional file evidence supporting your dispute.
data IssuingDisputeProductNotReceivedEvidenceUncategorizedFile'Variants
    = IssuingDisputeProductNotReceivedEvidenceUncategorizedFile'File File
    | IssuingDisputeProductNotReceivedEvidenceUncategorizedFile'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON IssuingDisputeProductNotReceivedEvidenceUncategorizedFile'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON IssuingDisputeProductNotReceivedEvidenceUncategorizedFile'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema legal_entity_company
-- 
-- 
data LegalEntityCompany = LegalEntityCompany {
  -- | address: 
  legalEntityCompanyAddress :: (GHC.Maybe.Maybe Address)
  -- | address_kana: The Kana variation of the company\'s primary address (Japan only).
  , legalEntityCompanyAddressKana :: (GHC.Maybe.Maybe LegalEntityCompanyAddressKana')
  -- | address_kanji: The Kanji variation of the company\'s primary address (Japan only).
  , legalEntityCompanyAddressKanji :: (GHC.Maybe.Maybe LegalEntityCompanyAddressKanji')
  -- | directors_provided: Whether the company\'s directors have been provided. This Boolean will be \`true\` if you\'ve manually indicated that all directors are provided via [the \`directors_provided\` parameter](https:\/\/stripe.com\/docs\/api\/accounts\/update\#update_account-company-directors_provided).
  , legalEntityCompanyDirectorsProvided :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | executives_provided: Whether the company\'s executives have been provided. This Boolean will be \`true\` if you\'ve manually indicated that all executives are provided via [the \`executives_provided\` parameter](https:\/\/stripe.com\/docs\/api\/accounts\/update\#update_account-company-executives_provided), or if Stripe determined that sufficient executives were provided.
  , legalEntityCompanyExecutivesProvided :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | name: The company\'s legal name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name_kana: The Kana variation of the company\'s legal name (Japan only).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyNameKana :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name_kanji: The Kanji variation of the company\'s legal name (Japan only).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyNameKanji :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | owners_provided: Whether the company\'s owners have been provided. This Boolean will be \`true\` if you\'ve manually indicated that all owners are provided via [the \`owners_provided\` parameter](https:\/\/stripe.com\/docs\/api\/accounts\/update\#update_account-company-owners_provided), or if Stripe determined that sufficient owners were provided. Stripe determines ownership requirements using both the number of owners provided and their total percent ownership (calculated by adding the \`percent_ownership\` of each owner together).
  , legalEntityCompanyOwnersProvided :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | phone: The company\'s phone number (used for verification).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | structure: The category identifying the legal structure of the company or legal entity.
  , legalEntityCompanyStructure :: (GHC.Maybe.Maybe LegalEntityCompanyStructure')
  -- | tax_id_provided: Whether the company\'s business ID number was provided.
  , legalEntityCompanyTaxIdProvided :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | tax_id_registrar: The jurisdiction in which the \`tax_id\` is registered (Germany-based companies only).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyTaxIdRegistrar :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | vat_id_provided: Whether the company\'s business VAT number was provided.
  , legalEntityCompanyVatIdProvided :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | verification: Information on the verification state of the company.
  , legalEntityCompanyVerification :: (GHC.Maybe.Maybe LegalEntityCompanyVerification')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LegalEntityCompany
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (legalEntityCompanyAddress obj) : (Data.Aeson..=) "address_kana" (legalEntityCompanyAddressKana obj) : (Data.Aeson..=) "address_kanji" (legalEntityCompanyAddressKanji obj) : (Data.Aeson..=) "directors_provided" (legalEntityCompanyDirectorsProvided obj) : (Data.Aeson..=) "executives_provided" (legalEntityCompanyExecutivesProvided obj) : (Data.Aeson..=) "name" (legalEntityCompanyName obj) : (Data.Aeson..=) "name_kana" (legalEntityCompanyNameKana obj) : (Data.Aeson..=) "name_kanji" (legalEntityCompanyNameKanji obj) : (Data.Aeson..=) "owners_provided" (legalEntityCompanyOwnersProvided obj) : (Data.Aeson..=) "phone" (legalEntityCompanyPhone obj) : (Data.Aeson..=) "structure" (legalEntityCompanyStructure obj) : (Data.Aeson..=) "tax_id_provided" (legalEntityCompanyTaxIdProvided obj) : (Data.Aeson..=) "tax_id_registrar" (legalEntityCompanyTaxIdRegistrar obj) : (Data.Aeson..=) "vat_id_provided" (legalEntityCompanyVatIdProvided obj) : (Data.Aeson..=) "verification" (legalEntityCompanyVerification obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (legalEntityCompanyAddress obj) GHC.Base.<> ((Data.Aeson..=) "address_kana" (legalEntityCompanyAddressKana obj) GHC.Base.<> ((Data.Aeson..=) "address_kanji" (legalEntityCompanyAddressKanji obj) GHC.Base.<> ((Data.Aeson..=) "directors_provided" (legalEntityCompanyDirectorsProvided obj) GHC.Base.<> ((Data.Aeson..=) "executives_provided" (legalEntityCompanyExecutivesProvided obj) GHC.Base.<> ((Data.Aeson..=) "name" (legalEntityCompanyName obj) GHC.Base.<> ((Data.Aeson..=) "name_kana" (legalEntityCompanyNameKana obj) GHC.Base.<> ((Data.Aeson..=) "name_kanji" (legalEntityCompanyNameKanji obj) GHC.Base.<> ((Data.Aeson..=) "owners_provided" (legalEntityCompanyOwnersProvided obj) GHC.Base.<> ((Data.Aeson..=) "phone" (legalEntityCompanyPhone obj) GHC.Base.<> ((Data.Aeson..=) "structure" (legalEntityCompanyStructure obj) GHC.Base.<> ((Data.Aeson..=) "tax_id_provided" (legalEntityCompanyTaxIdProvided obj) GHC.Base.<> ((Data.Aeson..=) "tax_id_registrar" (legalEntityCompanyTaxIdRegistrar obj) GHC.Base.<> ((Data.Aeson..=) "vat_id_provided" (legalEntityCompanyVatIdProvided obj) GHC.Base.<> (Data.Aeson..=) "verification" (legalEntityCompanyVerification obj)))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON LegalEntityCompany
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LegalEntityCompany" (\obj -> ((((((((((((((GHC.Base.pure LegalEntityCompany GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_kana")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_kanji")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "directors_provided")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "executives_provided")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name_kana")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name_kanji")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "owners_provided")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "structure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_id_provided")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_id_registrar")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "vat_id_provided")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verification"))
-- | Defines the data type for the schema legal_entity_companyAddress_kana\'
-- 
-- The Kana variation of the company\\\'s primary address (Japan only).
data LegalEntityCompanyAddressKana' = LegalEntityCompanyAddressKana' {
  -- | city: City\/Ward.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  legalEntityCompanyAddressKana'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKana'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Block\/Building number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKana'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Building details.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKana'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKana'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: Prefecture.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKana'State :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | town: Town\/cho-me.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKana'Town :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LegalEntityCompanyAddressKana'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (legalEntityCompanyAddressKana'City obj) : (Data.Aeson..=) "country" (legalEntityCompanyAddressKana'Country obj) : (Data.Aeson..=) "line1" (legalEntityCompanyAddressKana'Line1 obj) : (Data.Aeson..=) "line2" (legalEntityCompanyAddressKana'Line2 obj) : (Data.Aeson..=) "postal_code" (legalEntityCompanyAddressKana'PostalCode obj) : (Data.Aeson..=) "state" (legalEntityCompanyAddressKana'State obj) : (Data.Aeson..=) "town" (legalEntityCompanyAddressKana'Town obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (legalEntityCompanyAddressKana'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (legalEntityCompanyAddressKana'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (legalEntityCompanyAddressKana'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (legalEntityCompanyAddressKana'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (legalEntityCompanyAddressKana'PostalCode obj) GHC.Base.<> ((Data.Aeson..=) "state" (legalEntityCompanyAddressKana'State obj) GHC.Base.<> (Data.Aeson..=) "town" (legalEntityCompanyAddressKana'Town obj)))))))
instance Data.Aeson.Types.FromJSON.FromJSON LegalEntityCompanyAddressKana'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LegalEntityCompanyAddressKana'" (\obj -> ((((((GHC.Base.pure LegalEntityCompanyAddressKana' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "town"))
-- | Defines the data type for the schema legal_entity_companyAddress_kanji\'
-- 
-- The Kanji variation of the company\\\'s primary address (Japan only).
data LegalEntityCompanyAddressKanji' = LegalEntityCompanyAddressKanji' {
  -- | city: City\/Ward.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  legalEntityCompanyAddressKanji'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKanji'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Block\/Building number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKanji'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Building details.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKanji'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKanji'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: Prefecture.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKanji'State :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | town: Town\/cho-me.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyAddressKanji'Town :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LegalEntityCompanyAddressKanji'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (legalEntityCompanyAddressKanji'City obj) : (Data.Aeson..=) "country" (legalEntityCompanyAddressKanji'Country obj) : (Data.Aeson..=) "line1" (legalEntityCompanyAddressKanji'Line1 obj) : (Data.Aeson..=) "line2" (legalEntityCompanyAddressKanji'Line2 obj) : (Data.Aeson..=) "postal_code" (legalEntityCompanyAddressKanji'PostalCode obj) : (Data.Aeson..=) "state" (legalEntityCompanyAddressKanji'State obj) : (Data.Aeson..=) "town" (legalEntityCompanyAddressKanji'Town obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (legalEntityCompanyAddressKanji'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (legalEntityCompanyAddressKanji'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (legalEntityCompanyAddressKanji'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (legalEntityCompanyAddressKanji'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (legalEntityCompanyAddressKanji'PostalCode obj) GHC.Base.<> ((Data.Aeson..=) "state" (legalEntityCompanyAddressKanji'State obj) GHC.Base.<> (Data.Aeson..=) "town" (legalEntityCompanyAddressKanji'Town obj)))))))
instance Data.Aeson.Types.FromJSON.FromJSON LegalEntityCompanyAddressKanji'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LegalEntityCompanyAddressKanji'" (\obj -> ((((((GHC.Base.pure LegalEntityCompanyAddressKanji' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "town"))
-- | Defines the enum schema legal_entity_companyStructure\'
-- 
-- The category identifying the legal structure of the company or legal entity.
data LegalEntityCompanyStructure'
    = LegalEntityCompanyStructure'EnumOther Data.Aeson.Types.Internal.Value
    | LegalEntityCompanyStructure'EnumTyped GHC.Base.String
    | LegalEntityCompanyStructure'EnumStringGovernmentInstrumentality
    | LegalEntityCompanyStructure'EnumStringGovernmentalUnit
    | LegalEntityCompanyStructure'EnumStringIncorporatedNonProfit
    | LegalEntityCompanyStructure'EnumStringMultiMemberLlc
    | LegalEntityCompanyStructure'EnumStringPrivateCorporation
    | LegalEntityCompanyStructure'EnumStringPrivatePartnership
    | LegalEntityCompanyStructure'EnumStringPublicCorporation
    | LegalEntityCompanyStructure'EnumStringPublicPartnership
    | LegalEntityCompanyStructure'EnumStringTaxExemptGovernmentInstrumentality
    | LegalEntityCompanyStructure'EnumStringUnincorporatedAssociation
    | LegalEntityCompanyStructure'EnumStringUnincorporatedNonProfit
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON LegalEntityCompanyStructure'
    where toJSON (LegalEntityCompanyStructure'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LegalEntityCompanyStructure'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LegalEntityCompanyStructure'EnumStringGovernmentInstrumentality) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_instrumentality"
          toJSON (LegalEntityCompanyStructure'EnumStringGovernmentalUnit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "governmental_unit"
          toJSON (LegalEntityCompanyStructure'EnumStringIncorporatedNonProfit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "incorporated_non_profit"
          toJSON (LegalEntityCompanyStructure'EnumStringMultiMemberLlc) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multi_member_llc"
          toJSON (LegalEntityCompanyStructure'EnumStringPrivateCorporation) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "private_corporation"
          toJSON (LegalEntityCompanyStructure'EnumStringPrivatePartnership) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "private_partnership"
          toJSON (LegalEntityCompanyStructure'EnumStringPublicCorporation) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_corporation"
          toJSON (LegalEntityCompanyStructure'EnumStringPublicPartnership) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_partnership"
          toJSON (LegalEntityCompanyStructure'EnumStringTaxExemptGovernmentInstrumentality) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_exempt_government_instrumentality"
          toJSON (LegalEntityCompanyStructure'EnumStringUnincorporatedAssociation) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unincorporated_association"
          toJSON (LegalEntityCompanyStructure'EnumStringUnincorporatedNonProfit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unincorporated_non_profit"
instance Data.Aeson.FromJSON LegalEntityCompanyStructure'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_instrumentality")
                                          then LegalEntityCompanyStructure'EnumStringGovernmentInstrumentality
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "governmental_unit")
                                                then LegalEntityCompanyStructure'EnumStringGovernmentalUnit
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "incorporated_non_profit")
                                                      then LegalEntityCompanyStructure'EnumStringIncorporatedNonProfit
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multi_member_llc")
                                                            then LegalEntityCompanyStructure'EnumStringMultiMemberLlc
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "private_corporation")
                                                                  then LegalEntityCompanyStructure'EnumStringPrivateCorporation
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "private_partnership")
                                                                        then LegalEntityCompanyStructure'EnumStringPrivatePartnership
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_corporation")
                                                                              then LegalEntityCompanyStructure'EnumStringPublicCorporation
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "public_partnership")
                                                                                    then LegalEntityCompanyStructure'EnumStringPublicPartnership
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_exempt_government_instrumentality")
                                                                                          then LegalEntityCompanyStructure'EnumStringTaxExemptGovernmentInstrumentality
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unincorporated_association")
                                                                                                then LegalEntityCompanyStructure'EnumStringUnincorporatedAssociation
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unincorporated_non_profit")
                                                                                                      then LegalEntityCompanyStructure'EnumStringUnincorporatedNonProfit
                                                                                                      else LegalEntityCompanyStructure'EnumOther val)
-- | Defines the data type for the schema legal_entity_companyVerification\'
-- 
-- Information on the verification state of the company.
data LegalEntityCompanyVerification' = LegalEntityCompanyVerification' {
  -- | document: 
  legalEntityCompanyVerification'Document :: (GHC.Maybe.Maybe LegalEntityCompanyVerificationDocument)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LegalEntityCompanyVerification'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "document" (legalEntityCompanyVerification'Document obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "document" (legalEntityCompanyVerification'Document obj))
instance Data.Aeson.Types.FromJSON.FromJSON LegalEntityCompanyVerification'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LegalEntityCompanyVerification'" (\obj -> GHC.Base.pure LegalEntityCompanyVerification' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "document"))
-- | Defines the data type for the schema legal_entity_company_verification
-- 
-- 
data LegalEntityCompanyVerification = LegalEntityCompanyVerification {
  -- | document: 
  legalEntityCompanyVerificationDocument :: LegalEntityCompanyVerificationDocument
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LegalEntityCompanyVerification
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "document" (legalEntityCompanyVerificationDocument obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "document" (legalEntityCompanyVerificationDocument obj))
instance Data.Aeson.Types.FromJSON.FromJSON LegalEntityCompanyVerification
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LegalEntityCompanyVerification" (\obj -> GHC.Base.pure LegalEntityCompanyVerification GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "document"))
-- | Defines the data type for the schema legal_entity_company_verification_document
-- 
-- 
data LegalEntityCompanyVerificationDocument = LegalEntityCompanyVerificationDocument {
  -- | back: The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`additional_verification\`.
  legalEntityCompanyVerificationDocumentBack :: (GHC.Maybe.Maybe LegalEntityCompanyVerificationDocumentBack'Variants)
  -- | details: A user-displayable string describing the verification state of this document.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyVerificationDocumentDetails :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | details_code: One of \`document_corrupt\`, \`document_expired\`, \`document_failed_copy\`, \`document_failed_greyscale\`, \`document_failed_other\`, \`document_failed_test_mode\`, \`document_fraudulent\`, \`document_incomplete\`, \`document_invalid\`, \`document_manipulated\`, \`document_not_readable\`, \`document_not_uploaded\`, \`document_type_not_supported\`, or \`document_too_large\`. A machine-readable code specifying the verification state for this document.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityCompanyVerificationDocumentDetailsCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | front: The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`additional_verification\`.
  , legalEntityCompanyVerificationDocumentFront :: (GHC.Maybe.Maybe LegalEntityCompanyVerificationDocumentFront'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LegalEntityCompanyVerificationDocument
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "back" (legalEntityCompanyVerificationDocumentBack obj) : (Data.Aeson..=) "details" (legalEntityCompanyVerificationDocumentDetails obj) : (Data.Aeson..=) "details_code" (legalEntityCompanyVerificationDocumentDetailsCode obj) : (Data.Aeson..=) "front" (legalEntityCompanyVerificationDocumentFront obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "back" (legalEntityCompanyVerificationDocumentBack obj) GHC.Base.<> ((Data.Aeson..=) "details" (legalEntityCompanyVerificationDocumentDetails obj) GHC.Base.<> ((Data.Aeson..=) "details_code" (legalEntityCompanyVerificationDocumentDetailsCode obj) GHC.Base.<> (Data.Aeson..=) "front" (legalEntityCompanyVerificationDocumentFront obj))))
instance Data.Aeson.Types.FromJSON.FromJSON LegalEntityCompanyVerificationDocument
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LegalEntityCompanyVerificationDocument" (\obj -> (((GHC.Base.pure LegalEntityCompanyVerificationDocument GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "back")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "details_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "front"))
-- | Define the one-of schema legal_entity_company_verification_documentBack\'
-- 
-- The back of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`additional_verification\`.
data LegalEntityCompanyVerificationDocumentBack'Variants
    = LegalEntityCompanyVerificationDocumentBack'File File
    | LegalEntityCompanyVerificationDocumentBack'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON LegalEntityCompanyVerificationDocumentBack'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON LegalEntityCompanyVerificationDocumentBack'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema legal_entity_company_verification_documentFront\'
-- 
-- The front of a document returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`additional_verification\`.
data LegalEntityCompanyVerificationDocumentFront'Variants
    = LegalEntityCompanyVerificationDocumentFront'File File
    | LegalEntityCompanyVerificationDocumentFront'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON LegalEntityCompanyVerificationDocumentFront'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON LegalEntityCompanyVerificationDocumentFront'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema legal_entity_person_verification
-- 
-- 
data LegalEntityPersonVerification = LegalEntityPersonVerification {
  -- | additional_document: A document showing address, either a passport, local ID card, or utility bill from a well-known utility company.
  legalEntityPersonVerificationAdditionalDocument :: (GHC.Maybe.Maybe LegalEntityPersonVerificationAdditionalDocument')
  -- | details: A user-displayable string describing the verification state for the person. For example, this may say \"Provided identity information could not be verified\".
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityPersonVerificationDetails :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | details_code: One of \`document_address_mismatch\`, \`document_dob_mismatch\`, \`document_duplicate_type\`, \`document_id_number_mismatch\`, \`document_name_mismatch\`, \`document_nationality_mismatch\`, \`failed_keyed_identity\`, or \`failed_other\`. A machine-readable code specifying the verification state for the person.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityPersonVerificationDetailsCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | document: 
  , legalEntityPersonVerificationDocument :: (GHC.Maybe.Maybe LegalEntityPersonVerificationDocument)
  -- | status: The state of verification for the person. Possible values are \`unverified\`, \`pending\`, or \`verified\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityPersonVerificationStatus :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LegalEntityPersonVerification
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "additional_document" (legalEntityPersonVerificationAdditionalDocument obj) : (Data.Aeson..=) "details" (legalEntityPersonVerificationDetails obj) : (Data.Aeson..=) "details_code" (legalEntityPersonVerificationDetailsCode obj) : (Data.Aeson..=) "document" (legalEntityPersonVerificationDocument obj) : (Data.Aeson..=) "status" (legalEntityPersonVerificationStatus obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "additional_document" (legalEntityPersonVerificationAdditionalDocument obj) GHC.Base.<> ((Data.Aeson..=) "details" (legalEntityPersonVerificationDetails obj) GHC.Base.<> ((Data.Aeson..=) "details_code" (legalEntityPersonVerificationDetailsCode obj) GHC.Base.<> ((Data.Aeson..=) "document" (legalEntityPersonVerificationDocument obj) GHC.Base.<> (Data.Aeson..=) "status" (legalEntityPersonVerificationStatus obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON LegalEntityPersonVerification
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LegalEntityPersonVerification" (\obj -> ((((GHC.Base.pure LegalEntityPersonVerification GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "additional_document")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "details_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "document")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status"))
-- | Defines the data type for the schema legal_entity_person_verificationAdditional_document\'
-- 
-- A document showing address, either a passport, local ID card, or utility bill from a well-known utility company.
data LegalEntityPersonVerificationAdditionalDocument' = LegalEntityPersonVerificationAdditionalDocument' {
  -- | back: The back of an ID returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  legalEntityPersonVerificationAdditionalDocument'Back :: (GHC.Maybe.Maybe LegalEntityPersonVerificationAdditionalDocument'Back'Variants)
  -- | details: A user-displayable string describing the verification state of this document. For example, if a document is uploaded and the picture is too fuzzy, this may say \"Identity document is too unclear to read\".
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityPersonVerificationAdditionalDocument'Details :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | details_code: One of \`document_corrupt\`, \`document_country_not_supported\`, \`document_expired\`, \`document_failed_copy\`, \`document_failed_other\`, \`document_failed_test_mode\`, \`document_fraudulent\`, \`document_failed_greyscale\`, \`document_incomplete\`, \`document_invalid\`, \`document_manipulated\`, \`document_missing_back\`, \`document_missing_front\`, \`document_not_readable\`, \`document_not_uploaded\`, \`document_photo_mismatch\`, \`document_too_large\`, or \`document_type_not_supported\`. A machine-readable code specifying the verification state for this document.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityPersonVerificationAdditionalDocument'DetailsCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | front: The front of an ID returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  , legalEntityPersonVerificationAdditionalDocument'Front :: (GHC.Maybe.Maybe LegalEntityPersonVerificationAdditionalDocument'Front'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LegalEntityPersonVerificationAdditionalDocument'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "back" (legalEntityPersonVerificationAdditionalDocument'Back obj) : (Data.Aeson..=) "details" (legalEntityPersonVerificationAdditionalDocument'Details obj) : (Data.Aeson..=) "details_code" (legalEntityPersonVerificationAdditionalDocument'DetailsCode obj) : (Data.Aeson..=) "front" (legalEntityPersonVerificationAdditionalDocument'Front obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "back" (legalEntityPersonVerificationAdditionalDocument'Back obj) GHC.Base.<> ((Data.Aeson..=) "details" (legalEntityPersonVerificationAdditionalDocument'Details obj) GHC.Base.<> ((Data.Aeson..=) "details_code" (legalEntityPersonVerificationAdditionalDocument'DetailsCode obj) GHC.Base.<> (Data.Aeson..=) "front" (legalEntityPersonVerificationAdditionalDocument'Front obj))))
instance Data.Aeson.Types.FromJSON.FromJSON LegalEntityPersonVerificationAdditionalDocument'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LegalEntityPersonVerificationAdditionalDocument'" (\obj -> (((GHC.Base.pure LegalEntityPersonVerificationAdditionalDocument' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "back")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "details_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "front"))
-- | Define the one-of schema legal_entity_person_verificationAdditional_document\'Back\'
-- 
-- The back of an ID returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data LegalEntityPersonVerificationAdditionalDocument'Back'Variants
    = LegalEntityPersonVerificationAdditionalDocument'Back'File File
    | LegalEntityPersonVerificationAdditionalDocument'Back'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON LegalEntityPersonVerificationAdditionalDocument'Back'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON LegalEntityPersonVerificationAdditionalDocument'Back'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema legal_entity_person_verificationAdditional_document\'Front\'
-- 
-- The front of an ID returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data LegalEntityPersonVerificationAdditionalDocument'Front'Variants
    = LegalEntityPersonVerificationAdditionalDocument'Front'File File
    | LegalEntityPersonVerificationAdditionalDocument'Front'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON LegalEntityPersonVerificationAdditionalDocument'Front'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON LegalEntityPersonVerificationAdditionalDocument'Front'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema legal_entity_person_verification_document
-- 
-- 
data LegalEntityPersonVerificationDocument = LegalEntityPersonVerificationDocument {
  -- | back: The back of an ID returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  legalEntityPersonVerificationDocumentBack :: (GHC.Maybe.Maybe LegalEntityPersonVerificationDocumentBack'Variants)
  -- | details: A user-displayable string describing the verification state of this document. For example, if a document is uploaded and the picture is too fuzzy, this may say \"Identity document is too unclear to read\".
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityPersonVerificationDocumentDetails :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | details_code: One of \`document_corrupt\`, \`document_country_not_supported\`, \`document_expired\`, \`document_failed_copy\`, \`document_failed_other\`, \`document_failed_test_mode\`, \`document_fraudulent\`, \`document_failed_greyscale\`, \`document_incomplete\`, \`document_invalid\`, \`document_manipulated\`, \`document_missing_back\`, \`document_missing_front\`, \`document_not_readable\`, \`document_not_uploaded\`, \`document_photo_mismatch\`, \`document_too_large\`, or \`document_type_not_supported\`. A machine-readable code specifying the verification state for this document.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , legalEntityPersonVerificationDocumentDetailsCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | front: The front of an ID returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
  , legalEntityPersonVerificationDocumentFront :: (GHC.Maybe.Maybe LegalEntityPersonVerificationDocumentFront'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LegalEntityPersonVerificationDocument
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "back" (legalEntityPersonVerificationDocumentBack obj) : (Data.Aeson..=) "details" (legalEntityPersonVerificationDocumentDetails obj) : (Data.Aeson..=) "details_code" (legalEntityPersonVerificationDocumentDetailsCode obj) : (Data.Aeson..=) "front" (legalEntityPersonVerificationDocumentFront obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "back" (legalEntityPersonVerificationDocumentBack obj) GHC.Base.<> ((Data.Aeson..=) "details" (legalEntityPersonVerificationDocumentDetails obj) GHC.Base.<> ((Data.Aeson..=) "details_code" (legalEntityPersonVerificationDocumentDetailsCode obj) GHC.Base.<> (Data.Aeson..=) "front" (legalEntityPersonVerificationDocumentFront obj))))
instance Data.Aeson.Types.FromJSON.FromJSON LegalEntityPersonVerificationDocument
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LegalEntityPersonVerificationDocument" (\obj -> (((GHC.Base.pure LegalEntityPersonVerificationDocument GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "back")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "details_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "front"))
-- | Define the one-of schema legal_entity_person_verification_documentBack\'
-- 
-- The back of an ID returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data LegalEntityPersonVerificationDocumentBack'Variants
    = LegalEntityPersonVerificationDocumentBack'File File
    | LegalEntityPersonVerificationDocumentBack'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON LegalEntityPersonVerificationDocumentBack'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON LegalEntityPersonVerificationDocumentBack'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema legal_entity_person_verification_documentFront\'
-- 
-- The front of an ID returned by a [file upload](https:\/\/stripe.com\/docs\/api\#create_file) with a \`purpose\` value of \`identity_document\`.
data LegalEntityPersonVerificationDocumentFront'Variants
    = LegalEntityPersonVerificationDocumentFront'File File
    | LegalEntityPersonVerificationDocumentFront'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON LegalEntityPersonVerificationDocumentFront'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON LegalEntityPersonVerificationDocumentFront'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema line_item
-- 
-- 
data LineItem = LineItem {
  -- | amount: The amount, in %s.
  lineItemAmount :: GHC.Integer.Type.Integer
  -- | 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).
  , lineItemCurrency :: GHC.Base.String
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , lineItemDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | discountable: If true, discounts will apply to this line item. Always false for prorations.
  , lineItemDiscountable :: GHC.Types.Bool
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , lineItemId :: GHC.Base.String
  -- | invoice_item: The ID of the [invoice item](https:\/\/stripe.com\/docs\/api\/invoiceitems) associated with this line item if any.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , lineItemInvoiceItem :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , lineItemLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with \`type=subscription\` this will reflect the metadata of the subscription that caused the line item to be created.
  , lineItemMetadata :: LineItemMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , lineItemObject :: LineItemObject'
  -- | period: 
  , lineItemPeriod :: InvoiceLineItemPeriod
  -- | plan: The plan of the subscription, if the line item is a subscription or a proration.
  , lineItemPlan :: (GHC.Maybe.Maybe LineItemPlan')
  -- | proration: Whether this is a proration.
  , lineItemProration :: GHC.Types.Bool
  -- | quantity: The quantity of the subscription, if the line item is a subscription or a proration.
  , lineItemQuantity :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | subscription: The subscription that the invoice item pertains to, if any.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , lineItemSubscription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | subscription_item: The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , lineItemSubscriptionItem :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | tax_amounts: The amount of tax calculated per tax rate for this line item
  , lineItemTaxAmounts :: (GHC.Maybe.Maybe ([] InvoiceTaxAmount))
  -- | tax_rates: The tax rates which apply to the line item.
  , lineItemTaxRates :: (GHC.Maybe.Maybe ([] TaxRate))
  -- | type: A string identifying the type of the source of this line item, either an \`invoiceitem\` or a \`subscription\`.
  , lineItemType :: LineItemType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItem
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (lineItemAmount obj) : (Data.Aeson..=) "currency" (lineItemCurrency obj) : (Data.Aeson..=) "description" (lineItemDescription obj) : (Data.Aeson..=) "discountable" (lineItemDiscountable obj) : (Data.Aeson..=) "id" (lineItemId obj) : (Data.Aeson..=) "invoice_item" (lineItemInvoiceItem obj) : (Data.Aeson..=) "livemode" (lineItemLivemode obj) : (Data.Aeson..=) "metadata" (lineItemMetadata obj) : (Data.Aeson..=) "object" (lineItemObject obj) : (Data.Aeson..=) "period" (lineItemPeriod obj) : (Data.Aeson..=) "plan" (lineItemPlan obj) : (Data.Aeson..=) "proration" (lineItemProration obj) : (Data.Aeson..=) "quantity" (lineItemQuantity obj) : (Data.Aeson..=) "subscription" (lineItemSubscription obj) : (Data.Aeson..=) "subscription_item" (lineItemSubscriptionItem obj) : (Data.Aeson..=) "tax_amounts" (lineItemTaxAmounts obj) : (Data.Aeson..=) "tax_rates" (lineItemTaxRates obj) : (Data.Aeson..=) "type" (lineItemType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (lineItemAmount obj) GHC.Base.<> ((Data.Aeson..=) "currency" (lineItemCurrency obj) GHC.Base.<> ((Data.Aeson..=) "description" (lineItemDescription obj) GHC.Base.<> ((Data.Aeson..=) "discountable" (lineItemDiscountable obj) GHC.Base.<> ((Data.Aeson..=) "id" (lineItemId obj) GHC.Base.<> ((Data.Aeson..=) "invoice_item" (lineItemInvoiceItem obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (lineItemLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (lineItemMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (lineItemObject obj) GHC.Base.<> ((Data.Aeson..=) "period" (lineItemPeriod obj) GHC.Base.<> ((Data.Aeson..=) "plan" (lineItemPlan obj) GHC.Base.<> ((Data.Aeson..=) "proration" (lineItemProration obj) GHC.Base.<> ((Data.Aeson..=) "quantity" (lineItemQuantity obj) GHC.Base.<> ((Data.Aeson..=) "subscription" (lineItemSubscription obj) GHC.Base.<> ((Data.Aeson..=) "subscription_item" (lineItemSubscriptionItem obj) GHC.Base.<> ((Data.Aeson..=) "tax_amounts" (lineItemTaxAmounts obj) GHC.Base.<> ((Data.Aeson..=) "tax_rates" (lineItemTaxRates obj) GHC.Base.<> (Data.Aeson..=) "type" (lineItemType obj))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON LineItem
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LineItem" (\obj -> (((((((((((((((((GHC.Base.pure LineItem GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "discountable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice_item")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "period")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "plan")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "proration")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "quantity")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription_item")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_amounts")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_rates")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Defines the data type for the schema line_itemMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with \`type=subscription\` this will reflect the metadata of the subscription that caused the line item to be created.
data LineItemMetadata' = LineItemMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON LineItemMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LineItemMetadata'" (\obj -> GHC.Base.pure LineItemMetadata')
-- | Defines the enum schema line_itemObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data LineItemObject'
    = LineItemObject'EnumOther Data.Aeson.Types.Internal.Value
    | LineItemObject'EnumTyped GHC.Base.String
    | LineItemObject'EnumStringLineItem
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemObject'
    where toJSON (LineItemObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemObject'EnumStringLineItem) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "line_item"
instance Data.Aeson.FromJSON LineItemObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "line_item")
                                          then LineItemObject'EnumStringLineItem
                                          else LineItemObject'EnumOther val)
-- | Defines the data type for the schema line_itemPlan\'
-- 
-- The plan of the subscription, if the line item is a subscription or a proration.
data LineItemPlan' = LineItemPlan' {
  -- | active: Whether the plan is currently available for new subscriptions.
  lineItemPlan'Active :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | aggregate_usage: Specifies a usage aggregation strategy for plans of \`usage_type=metered\`. Allowed values are \`sum\` for summing up all usage during a period, \`last_during_period\` for using the last usage record reported within a period, \`last_ever\` for using the last usage record ever (across period bounds) or \`max\` which uses the usage record with the maximum reported usage during a period. Defaults to \`sum\`.
  , lineItemPlan'AggregateUsage :: (GHC.Maybe.Maybe LineItemPlan'AggregateUsage')
  -- | amount: The amount in %s to be charged on the interval specified.
  , lineItemPlan'Amount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | amount_decimal: Same as \`amount\`, but contains a decimal value with at most 12 decimal places.
  , lineItemPlan'AmountDecimal :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | billing_scheme: Describes how to compute the price per period. Either \`per_unit\` or \`tiered\`. \`per_unit\` indicates that the fixed amount (specified in \`amount\`) will be charged per unit in \`quantity\` (for plans with \`usage_type=licensed\`), or per unit of total usage (for plans with \`usage_type=metered\`). \`tiered\` indicates that the unit pricing will be computed using a tiering strategy as defined using the \`tiers\` and \`tiers_mode\` attributes.
  , lineItemPlan'BillingScheme :: (GHC.Maybe.Maybe LineItemPlan'BillingScheme')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , lineItemPlan'Created :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | 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).
  , lineItemPlan'Currency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , lineItemPlan'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | interval: The frequency at which a subscription is billed. One of \`day\`, \`week\`, \`month\` or \`year\`.
  , lineItemPlan'Interval :: (GHC.Maybe.Maybe LineItemPlan'Interval')
  -- | interval_count: The number of intervals (specified in the \`interval\` attribute) between subscription billings. For example, \`interval=month\` and \`interval_count=3\` bills every 3 months.
  , lineItemPlan'IntervalCount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , lineItemPlan'Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , lineItemPlan'Metadata :: (GHC.Maybe.Maybe LineItemPlan'Metadata')
  -- | nickname: A brief description of the plan, hidden from customers.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , lineItemPlan'Nickname :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , lineItemPlan'Object :: (GHC.Maybe.Maybe LineItemPlan'Object')
  -- | product: The product whose pricing this plan determines.
  , lineItemPlan'Product :: (GHC.Maybe.Maybe LineItemPlan'Product'Variants)
  -- | tiers: Each element represents a pricing tier. This parameter requires \`billing_scheme\` to be set to \`tiered\`. See also the documentation for \`billing_scheme\`.
  , lineItemPlan'Tiers :: (GHC.Maybe.Maybe ([] PlanTier))
  -- | tiers_mode: Defines if the tiering price should be \`graduated\` or \`volume\` based. In \`volume\`-based tiering, the maximum quantity within a period determines the per unit price. In \`graduated\` tiering, pricing can change as the quantity grows.
  , lineItemPlan'TiersMode :: (GHC.Maybe.Maybe LineItemPlan'TiersMode')
  -- | transform_usage: Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with \`tiers\`.
  , lineItemPlan'TransformUsage :: (GHC.Maybe.Maybe LineItemPlan'TransformUsage')
  -- | trial_period_days: Default number of trial days when subscribing a customer to this plan using [\`trial_from_plan=true\`](https:\/\/stripe.com\/docs\/api\#create_subscription-trial_from_plan).
  , lineItemPlan'TrialPeriodDays :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | usage_type: Configures how the quantity per period should be determined. Can be either \`metered\` or \`licensed\`. \`licensed\` automatically bills the \`quantity\` set when adding it to a subscription. \`metered\` aggregates the total usage based on usage records. Defaults to \`licensed\`.
  , lineItemPlan'UsageType :: (GHC.Maybe.Maybe LineItemPlan'UsageType')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemPlan'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "active" (lineItemPlan'Active obj) : (Data.Aeson..=) "aggregate_usage" (lineItemPlan'AggregateUsage obj) : (Data.Aeson..=) "amount" (lineItemPlan'Amount obj) : (Data.Aeson..=) "amount_decimal" (lineItemPlan'AmountDecimal obj) : (Data.Aeson..=) "billing_scheme" (lineItemPlan'BillingScheme obj) : (Data.Aeson..=) "created" (lineItemPlan'Created obj) : (Data.Aeson..=) "currency" (lineItemPlan'Currency obj) : (Data.Aeson..=) "id" (lineItemPlan'Id obj) : (Data.Aeson..=) "interval" (lineItemPlan'Interval obj) : (Data.Aeson..=) "interval_count" (lineItemPlan'IntervalCount obj) : (Data.Aeson..=) "livemode" (lineItemPlan'Livemode obj) : (Data.Aeson..=) "metadata" (lineItemPlan'Metadata obj) : (Data.Aeson..=) "nickname" (lineItemPlan'Nickname obj) : (Data.Aeson..=) "object" (lineItemPlan'Object obj) : (Data.Aeson..=) "product" (lineItemPlan'Product obj) : (Data.Aeson..=) "tiers" (lineItemPlan'Tiers obj) : (Data.Aeson..=) "tiers_mode" (lineItemPlan'TiersMode obj) : (Data.Aeson..=) "transform_usage" (lineItemPlan'TransformUsage obj) : (Data.Aeson..=) "trial_period_days" (lineItemPlan'TrialPeriodDays obj) : (Data.Aeson..=) "usage_type" (lineItemPlan'UsageType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "active" (lineItemPlan'Active obj) GHC.Base.<> ((Data.Aeson..=) "aggregate_usage" (lineItemPlan'AggregateUsage obj) GHC.Base.<> ((Data.Aeson..=) "amount" (lineItemPlan'Amount obj) GHC.Base.<> ((Data.Aeson..=) "amount_decimal" (lineItemPlan'AmountDecimal obj) GHC.Base.<> ((Data.Aeson..=) "billing_scheme" (lineItemPlan'BillingScheme obj) GHC.Base.<> ((Data.Aeson..=) "created" (lineItemPlan'Created obj) GHC.Base.<> ((Data.Aeson..=) "currency" (lineItemPlan'Currency obj) GHC.Base.<> ((Data.Aeson..=) "id" (lineItemPlan'Id obj) GHC.Base.<> ((Data.Aeson..=) "interval" (lineItemPlan'Interval obj) GHC.Base.<> ((Data.Aeson..=) "interval_count" (lineItemPlan'IntervalCount obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (lineItemPlan'Livemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (lineItemPlan'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "nickname" (lineItemPlan'Nickname obj) GHC.Base.<> ((Data.Aeson..=) "object" (lineItemPlan'Object obj) GHC.Base.<> ((Data.Aeson..=) "product" (lineItemPlan'Product obj) GHC.Base.<> ((Data.Aeson..=) "tiers" (lineItemPlan'Tiers obj) GHC.Base.<> ((Data.Aeson..=) "tiers_mode" (lineItemPlan'TiersMode obj) GHC.Base.<> ((Data.Aeson..=) "transform_usage" (lineItemPlan'TransformUsage obj) GHC.Base.<> ((Data.Aeson..=) "trial_period_days" (lineItemPlan'TrialPeriodDays obj) GHC.Base.<> (Data.Aeson..=) "usage_type" (lineItemPlan'UsageType obj))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON LineItemPlan'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LineItemPlan'" (\obj -> (((((((((((((((((((GHC.Base.pure LineItemPlan' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "active")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "aggregate_usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_decimal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_scheme")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval_count")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "nickname")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "product")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tiers")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tiers_mode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transform_usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_period_days")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage_type"))
-- | Defines the enum schema line_itemPlan\'Aggregate_usage\'
-- 
-- Specifies a usage aggregation strategy for plans of \`usage_type=metered\`. Allowed values are \`sum\` for summing up all usage during a period, \`last_during_period\` for using the last usage record reported within a period, \`last_ever\` for using the last usage record ever (across period bounds) or \`max\` which uses the usage record with the maximum reported usage during a period. Defaults to \`sum\`.
data LineItemPlan'AggregateUsage'
    = LineItemPlan'AggregateUsage'EnumOther Data.Aeson.Types.Internal.Value
    | LineItemPlan'AggregateUsage'EnumTyped GHC.Base.String
    | LineItemPlan'AggregateUsage'EnumStringLastDuringPeriod
    | LineItemPlan'AggregateUsage'EnumStringLastEver
    | LineItemPlan'AggregateUsage'EnumStringMax
    | LineItemPlan'AggregateUsage'EnumStringSum
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemPlan'AggregateUsage'
    where toJSON (LineItemPlan'AggregateUsage'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'AggregateUsage'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'AggregateUsage'EnumStringLastDuringPeriod) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_during_period"
          toJSON (LineItemPlan'AggregateUsage'EnumStringLastEver) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_ever"
          toJSON (LineItemPlan'AggregateUsage'EnumStringMax) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "max"
          toJSON (LineItemPlan'AggregateUsage'EnumStringSum) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sum"
instance Data.Aeson.FromJSON LineItemPlan'AggregateUsage'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_during_period")
                                          then LineItemPlan'AggregateUsage'EnumStringLastDuringPeriod
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_ever")
                                                then LineItemPlan'AggregateUsage'EnumStringLastEver
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "max")
                                                      then LineItemPlan'AggregateUsage'EnumStringMax
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sum")
                                                            then LineItemPlan'AggregateUsage'EnumStringSum
                                                            else LineItemPlan'AggregateUsage'EnumOther val)
-- | Defines the enum schema line_itemPlan\'Billing_scheme\'
-- 
-- Describes how to compute the price per period. Either \`per_unit\` or \`tiered\`. \`per_unit\` indicates that the fixed amount (specified in \`amount\`) will be charged per unit in \`quantity\` (for plans with \`usage_type=licensed\`), or per unit of total usage (for plans with \`usage_type=metered\`). \`tiered\` indicates that the unit pricing will be computed using a tiering strategy as defined using the \`tiers\` and \`tiers_mode\` attributes.
data LineItemPlan'BillingScheme'
    = LineItemPlan'BillingScheme'EnumOther Data.Aeson.Types.Internal.Value
    | LineItemPlan'BillingScheme'EnumTyped GHC.Base.String
    | LineItemPlan'BillingScheme'EnumStringPerUnit
    | LineItemPlan'BillingScheme'EnumStringTiered
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemPlan'BillingScheme'
    where toJSON (LineItemPlan'BillingScheme'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'BillingScheme'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'BillingScheme'EnumStringPerUnit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "per_unit"
          toJSON (LineItemPlan'BillingScheme'EnumStringTiered) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tiered"
instance Data.Aeson.FromJSON LineItemPlan'BillingScheme'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "per_unit")
                                          then LineItemPlan'BillingScheme'EnumStringPerUnit
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tiered")
                                                then LineItemPlan'BillingScheme'EnumStringTiered
                                                else LineItemPlan'BillingScheme'EnumOther val)
-- | Defines the enum schema line_itemPlan\'Interval\'
-- 
-- The frequency at which a subscription is billed. One of \`day\`, \`week\`, \`month\` or \`year\`.
data LineItemPlan'Interval'
    = LineItemPlan'Interval'EnumOther Data.Aeson.Types.Internal.Value
    | LineItemPlan'Interval'EnumTyped GHC.Base.String
    | LineItemPlan'Interval'EnumStringDay
    | LineItemPlan'Interval'EnumStringMonth
    | LineItemPlan'Interval'EnumStringWeek
    | LineItemPlan'Interval'EnumStringYear
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemPlan'Interval'
    where toJSON (LineItemPlan'Interval'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'Interval'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'Interval'EnumStringDay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "day"
          toJSON (LineItemPlan'Interval'EnumStringMonth) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month"
          toJSON (LineItemPlan'Interval'EnumStringWeek) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "week"
          toJSON (LineItemPlan'Interval'EnumStringYear) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "year"
instance Data.Aeson.FromJSON LineItemPlan'Interval'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "day")
                                          then LineItemPlan'Interval'EnumStringDay
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month")
                                                then LineItemPlan'Interval'EnumStringMonth
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "week")
                                                      then LineItemPlan'Interval'EnumStringWeek
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "year")
                                                            then LineItemPlan'Interval'EnumStringYear
                                                            else LineItemPlan'Interval'EnumOther val)
-- | Defines the data type for the schema line_itemPlan\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data LineItemPlan'Metadata' = LineItemPlan'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemPlan'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON LineItemPlan'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LineItemPlan'Metadata'" (\obj -> GHC.Base.pure LineItemPlan'Metadata')
-- | Defines the enum schema line_itemPlan\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data LineItemPlan'Object'
    = LineItemPlan'Object'EnumOther Data.Aeson.Types.Internal.Value
    | LineItemPlan'Object'EnumTyped GHC.Base.String
    | LineItemPlan'Object'EnumStringPlan
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemPlan'Object'
    where toJSON (LineItemPlan'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'Object'EnumStringPlan) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plan"
instance Data.Aeson.FromJSON LineItemPlan'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plan")
                                          then LineItemPlan'Object'EnumStringPlan
                                          else LineItemPlan'Object'EnumOther val)
-- | Define the one-of schema line_itemPlan\'Product\'
-- 
-- The product whose pricing this plan determines.
data LineItemPlan'Product'Variants
    = LineItemPlan'Product'DeletedProduct DeletedProduct
    | LineItemPlan'Product'Product Product
    | LineItemPlan'Product'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON LineItemPlan'Product'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON LineItemPlan'Product'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema line_itemPlan\'Tiers_mode\'
-- 
-- Defines if the tiering price should be \`graduated\` or \`volume\` based. In \`volume\`-based tiering, the maximum quantity within a period determines the per unit price. In \`graduated\` tiering, pricing can change as the quantity grows.
data LineItemPlan'TiersMode'
    = LineItemPlan'TiersMode'EnumOther Data.Aeson.Types.Internal.Value
    | LineItemPlan'TiersMode'EnumTyped GHC.Base.String
    | LineItemPlan'TiersMode'EnumStringGraduated
    | LineItemPlan'TiersMode'EnumStringVolume
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemPlan'TiersMode'
    where toJSON (LineItemPlan'TiersMode'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'TiersMode'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'TiersMode'EnumStringGraduated) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "graduated"
          toJSON (LineItemPlan'TiersMode'EnumStringVolume) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "volume"
instance Data.Aeson.FromJSON LineItemPlan'TiersMode'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "graduated")
                                          then LineItemPlan'TiersMode'EnumStringGraduated
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "volume")
                                                then LineItemPlan'TiersMode'EnumStringVolume
                                                else LineItemPlan'TiersMode'EnumOther val)
-- | Defines the data type for the schema line_itemPlan\'Transform_usage\'
-- 
-- Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with \\\`tiers\\\`.
data LineItemPlan'TransformUsage' = LineItemPlan'TransformUsage' {
  -- | divide_by: Divide usage by this number.
  lineItemPlan'TransformUsage'DivideBy :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | round: After division, either round the result \`up\` or \`down\`.
  , lineItemPlan'TransformUsage'Round :: (GHC.Maybe.Maybe LineItemPlan'TransformUsage'Round')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemPlan'TransformUsage'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "divide_by" (lineItemPlan'TransformUsage'DivideBy obj) : (Data.Aeson..=) "round" (lineItemPlan'TransformUsage'Round obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "divide_by" (lineItemPlan'TransformUsage'DivideBy obj) GHC.Base.<> (Data.Aeson..=) "round" (lineItemPlan'TransformUsage'Round obj))
instance Data.Aeson.Types.FromJSON.FromJSON LineItemPlan'TransformUsage'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "LineItemPlan'TransformUsage'" (\obj -> (GHC.Base.pure LineItemPlan'TransformUsage' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "divide_by")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "round"))
-- | Defines the enum schema line_itemPlan\'Transform_usage\'Round\'
-- 
-- After division, either round the result \`up\` or \`down\`.
data LineItemPlan'TransformUsage'Round'
    = LineItemPlan'TransformUsage'Round'EnumOther Data.Aeson.Types.Internal.Value
    | LineItemPlan'TransformUsage'Round'EnumTyped GHC.Base.String
    | LineItemPlan'TransformUsage'Round'EnumStringDown
    | LineItemPlan'TransformUsage'Round'EnumStringUp
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemPlan'TransformUsage'Round'
    where toJSON (LineItemPlan'TransformUsage'Round'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'TransformUsage'Round'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'TransformUsage'Round'EnumStringDown) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "down"
          toJSON (LineItemPlan'TransformUsage'Round'EnumStringUp) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "up"
instance Data.Aeson.FromJSON LineItemPlan'TransformUsage'Round'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "down")
                                          then LineItemPlan'TransformUsage'Round'EnumStringDown
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "up")
                                                then LineItemPlan'TransformUsage'Round'EnumStringUp
                                                else LineItemPlan'TransformUsage'Round'EnumOther val)
-- | Defines the enum schema line_itemPlan\'Usage_type\'
-- 
-- Configures how the quantity per period should be determined. Can be either \`metered\` or \`licensed\`. \`licensed\` automatically bills the \`quantity\` set when adding it to a subscription. \`metered\` aggregates the total usage based on usage records. Defaults to \`licensed\`.
data LineItemPlan'UsageType'
    = LineItemPlan'UsageType'EnumOther Data.Aeson.Types.Internal.Value
    | LineItemPlan'UsageType'EnumTyped GHC.Base.String
    | LineItemPlan'UsageType'EnumStringLicensed
    | LineItemPlan'UsageType'EnumStringMetered
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemPlan'UsageType'
    where toJSON (LineItemPlan'UsageType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'UsageType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemPlan'UsageType'EnumStringLicensed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "licensed"
          toJSON (LineItemPlan'UsageType'EnumStringMetered) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metered"
instance Data.Aeson.FromJSON LineItemPlan'UsageType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "licensed")
                                          then LineItemPlan'UsageType'EnumStringLicensed
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metered")
                                                then LineItemPlan'UsageType'EnumStringMetered
                                                else LineItemPlan'UsageType'EnumOther val)
-- | Defines the enum schema line_itemType\'
-- 
-- A string identifying the type of the source of this line item, either an \`invoiceitem\` or a \`subscription\`.
data LineItemType'
    = LineItemType'EnumOther Data.Aeson.Types.Internal.Value
    | LineItemType'EnumTyped GHC.Base.String
    | LineItemType'EnumStringInvoiceitem
    | LineItemType'EnumStringSubscription
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON LineItemType'
    where toJSON (LineItemType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (LineItemType'EnumStringInvoiceitem) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invoiceitem"
          toJSON (LineItemType'EnumStringSubscription) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription"
instance Data.Aeson.FromJSON LineItemType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invoiceitem")
                                          then LineItemType'EnumStringInvoiceitem
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription")
                                                then LineItemType'EnumStringSubscription
                                                else LineItemType'EnumOther val)
-- | Defines the data type for the schema mandate
-- 
-- A Mandate is a record of the permission a customer has given you to debit their payment method.
data Mandate = Mandate {
  -- | customer_acceptance: 
  mandateCustomerAcceptance :: CustomerAcceptance
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , mandateId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , mandateLivemode :: GHC.Types.Bool
  -- | multi_use: 
  , mandateMultiUse :: (GHC.Maybe.Maybe MandateMultiUse)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , mandateObject :: MandateObject'
  -- | payment_method: ID of the payment method associated with this mandate.
  , mandatePaymentMethod :: MandatePaymentMethod'Variants
  -- | payment_method_details: 
  , mandatePaymentMethodDetails :: MandatePaymentMethodDetails
  -- | single_use: 
  , mandateSingleUse :: (GHC.Maybe.Maybe MandateSingleUse)
  -- | status: The status of the Mandate, one of \`pending\`, \`inactive\`, or \`active\`. The Mandate can be used to initiate a payment only if status=active.
  , mandateStatus :: MandateStatus'
  -- | type: The type of the mandate, one of \`single_use\` or \`multi_use\`
  , mandateType :: MandateType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Mandate
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "customer_acceptance" (mandateCustomerAcceptance obj) : (Data.Aeson..=) "id" (mandateId obj) : (Data.Aeson..=) "livemode" (mandateLivemode obj) : (Data.Aeson..=) "multi_use" (mandateMultiUse obj) : (Data.Aeson..=) "object" (mandateObject obj) : (Data.Aeson..=) "payment_method" (mandatePaymentMethod obj) : (Data.Aeson..=) "payment_method_details" (mandatePaymentMethodDetails obj) : (Data.Aeson..=) "single_use" (mandateSingleUse obj) : (Data.Aeson..=) "status" (mandateStatus obj) : (Data.Aeson..=) "type" (mandateType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "customer_acceptance" (mandateCustomerAcceptance obj) GHC.Base.<> ((Data.Aeson..=) "id" (mandateId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (mandateLivemode obj) GHC.Base.<> ((Data.Aeson..=) "multi_use" (mandateMultiUse obj) GHC.Base.<> ((Data.Aeson..=) "object" (mandateObject obj) GHC.Base.<> ((Data.Aeson..=) "payment_method" (mandatePaymentMethod obj) GHC.Base.<> ((Data.Aeson..=) "payment_method_details" (mandatePaymentMethodDetails obj) GHC.Base.<> ((Data.Aeson..=) "single_use" (mandateSingleUse obj) GHC.Base.<> ((Data.Aeson..=) "status" (mandateStatus obj) GHC.Base.<> (Data.Aeson..=) "type" (mandateType obj))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Mandate
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Mandate" (\obj -> (((((((((GHC.Base.pure Mandate GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "customer_acceptance")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multi_use")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "payment_method_details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "single_use")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Defines the enum schema mandateObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data MandateObject'
    = MandateObject'EnumOther Data.Aeson.Types.Internal.Value
    | MandateObject'EnumTyped GHC.Base.String
    | MandateObject'EnumStringMandate
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON MandateObject'
    where toJSON (MandateObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (MandateObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (MandateObject'EnumStringMandate) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mandate"
instance Data.Aeson.FromJSON MandateObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mandate")
                                          then MandateObject'EnumStringMandate
                                          else MandateObject'EnumOther val)
-- | Define the one-of schema mandatePayment_method\'
-- 
-- ID of the payment method associated with this mandate.
data MandatePaymentMethod'Variants
    = MandatePaymentMethod'PaymentMethod PaymentMethod
    | MandatePaymentMethod'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON MandatePaymentMethod'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON MandatePaymentMethod'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema mandateStatus\'
-- 
-- The status of the Mandate, one of \`pending\`, \`inactive\`, or \`active\`. The Mandate can be used to initiate a payment only if status=active.
data MandateStatus'
    = MandateStatus'EnumOther Data.Aeson.Types.Internal.Value
    | MandateStatus'EnumTyped GHC.Base.String
    | MandateStatus'EnumStringActive
    | MandateStatus'EnumStringInactive
    | MandateStatus'EnumStringPending
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON MandateStatus'
    where toJSON (MandateStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (MandateStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (MandateStatus'EnumStringActive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active"
          toJSON (MandateStatus'EnumStringInactive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "inactive"
          toJSON (MandateStatus'EnumStringPending) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pending"
instance Data.Aeson.FromJSON MandateStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active")
                                          then MandateStatus'EnumStringActive
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "inactive")
                                                then MandateStatus'EnumStringInactive
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pending")
                                                      then MandateStatus'EnumStringPending
                                                      else MandateStatus'EnumOther val)
-- | Defines the enum schema mandateType\'
-- 
-- The type of the mandate, one of \`single_use\` or \`multi_use\`
data MandateType'
    = MandateType'EnumOther Data.Aeson.Types.Internal.Value
    | MandateType'EnumTyped GHC.Base.String
    | MandateType'EnumStringMultiUse
    | MandateType'EnumStringSingleUse
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON MandateType'
    where toJSON (MandateType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (MandateType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (MandateType'EnumStringMultiUse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multi_use"
          toJSON (MandateType'EnumStringSingleUse) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "single_use"
instance Data.Aeson.FromJSON MandateType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multi_use")
                                          then MandateType'EnumStringMultiUse
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "single_use")
                                                then MandateType'EnumStringSingleUse
                                                else MandateType'EnumOther val)
-- | Defines the data type for the schema order
-- 
-- Order objects are created to handle end customers\' purchases of previously
-- defined [products](https:\/\/stripe.com\/docs\/api\#products). You can create, retrieve, and pay individual orders, as well
-- as list all orders. Orders are identified by a unique, random ID.
-- 
-- Related guide: [Tax, Shipping, and Inventory](https:\/\/stripe.com\/docs\/orders).
data Order = Order {
  -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the order.
  orderAmount :: GHC.Integer.Type.Integer
  -- | amount_returned: The total amount that was returned to the customer.
  , orderAmountReturned :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | application: ID of the Connect Application that created the order.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderApplication :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | application_fee: A fee in cents that will be applied to the order and transferred to the application owner’s Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees documentation.
  , orderApplicationFee :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | charge: The ID of the payment used to pay for the order. Present if the order status is \`paid\`, \`fulfilled\`, or \`refunded\`.
  , orderCharge :: (GHC.Maybe.Maybe OrderCharge'Variants)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , orderCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , orderCurrency :: GHC.Base.String
  -- | customer: The customer used for the order.
  , orderCustomer :: (GHC.Maybe.Maybe OrderCustomer'Variants)
  -- | email: The email address of the customer placing the order.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | external_coupon_code: External coupon code to load for this order.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderExternalCouponCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderId :: GHC.Base.String
  -- | items: List of items constituting the order. An order can have up to 25 items.
  , orderItems :: ([] OrderItem)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , orderLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , orderMetadata :: OrderMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , orderObject :: OrderObject'
  -- | returns: A list of returns that have taken place for this order.
  , orderReturns :: (GHC.Maybe.Maybe OrderReturns')
  -- | selected_shipping_method: The shipping method that is currently selected for this order, if any. If present, it is equal to one of the \`id\`s of shipping methods in the \`shipping_methods\` array. At order creation time, if there are multiple shipping methods, Stripe will automatically selected the first method.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderSelectedShippingMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | shipping: The shipping address for the order. Present if the order is for goods to be shipped.
  , orderShipping :: (GHC.Maybe.Maybe OrderShipping')
  -- | shipping_methods: A list of supported shipping methods for this order. The desired shipping method can be specified either by updating the order, or when paying it.
  , orderShippingMethods :: (GHC.Maybe.Maybe ([] ShippingMethod))
  -- | status: Current order status. One of \`created\`, \`paid\`, \`canceled\`, \`fulfilled\`, or \`returned\`. More details in the [Orders Guide](https:\/\/stripe.com\/docs\/orders\/guide\#understanding-order-statuses).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderStatus :: GHC.Base.String
  -- | status_transitions: The timestamps at which the order status was updated.
  , orderStatusTransitions :: (GHC.Maybe.Maybe OrderStatusTransitions')
  -- | updated: Time at which the object was last updated. Measured in seconds since the Unix epoch.
  , orderUpdated :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | upstream_id: The user\'s order ID if it is different from the Stripe order ID.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderUpstreamId :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Order
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (orderAmount obj) : (Data.Aeson..=) "amount_returned" (orderAmountReturned obj) : (Data.Aeson..=) "application" (orderApplication obj) : (Data.Aeson..=) "application_fee" (orderApplicationFee obj) : (Data.Aeson..=) "charge" (orderCharge obj) : (Data.Aeson..=) "created" (orderCreated obj) : (Data.Aeson..=) "currency" (orderCurrency obj) : (Data.Aeson..=) "customer" (orderCustomer obj) : (Data.Aeson..=) "email" (orderEmail obj) : (Data.Aeson..=) "external_coupon_code" (orderExternalCouponCode obj) : (Data.Aeson..=) "id" (orderId obj) : (Data.Aeson..=) "items" (orderItems obj) : (Data.Aeson..=) "livemode" (orderLivemode obj) : (Data.Aeson..=) "metadata" (orderMetadata obj) : (Data.Aeson..=) "object" (orderObject obj) : (Data.Aeson..=) "returns" (orderReturns obj) : (Data.Aeson..=) "selected_shipping_method" (orderSelectedShippingMethod obj) : (Data.Aeson..=) "shipping" (orderShipping obj) : (Data.Aeson..=) "shipping_methods" (orderShippingMethods obj) : (Data.Aeson..=) "status" (orderStatus obj) : (Data.Aeson..=) "status_transitions" (orderStatusTransitions obj) : (Data.Aeson..=) "updated" (orderUpdated obj) : (Data.Aeson..=) "upstream_id" (orderUpstreamId obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (orderAmount obj) GHC.Base.<> ((Data.Aeson..=) "amount_returned" (orderAmountReturned obj) GHC.Base.<> ((Data.Aeson..=) "application" (orderApplication obj) GHC.Base.<> ((Data.Aeson..=) "application_fee" (orderApplicationFee obj) GHC.Base.<> ((Data.Aeson..=) "charge" (orderCharge obj) GHC.Base.<> ((Data.Aeson..=) "created" (orderCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (orderCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (orderCustomer obj) GHC.Base.<> ((Data.Aeson..=) "email" (orderEmail obj) GHC.Base.<> ((Data.Aeson..=) "external_coupon_code" (orderExternalCouponCode obj) GHC.Base.<> ((Data.Aeson..=) "id" (orderId obj) GHC.Base.<> ((Data.Aeson..=) "items" (orderItems obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (orderLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (orderMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (orderObject obj) GHC.Base.<> ((Data.Aeson..=) "returns" (orderReturns obj) GHC.Base.<> ((Data.Aeson..=) "selected_shipping_method" (orderSelectedShippingMethod obj) GHC.Base.<> ((Data.Aeson..=) "shipping" (orderShipping obj) GHC.Base.<> ((Data.Aeson..=) "shipping_methods" (orderShippingMethods obj) GHC.Base.<> ((Data.Aeson..=) "status" (orderStatus obj) GHC.Base.<> ((Data.Aeson..=) "status_transitions" (orderStatusTransitions obj) GHC.Base.<> ((Data.Aeson..=) "updated" (orderUpdated obj) GHC.Base.<> (Data.Aeson..=) "upstream_id" (orderUpstreamId obj)))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Order
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Order" (\obj -> ((((((((((((((((((((((GHC.Base.pure Order GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_returned")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application_fee")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "external_coupon_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "items")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "returns")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "selected_shipping_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status_transitions")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "updated")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "upstream_id"))
-- | Define the one-of schema orderCharge\'
-- 
-- The ID of the payment used to pay for the order. Present if the order status is \`paid\`, \`fulfilled\`, or \`refunded\`.
data OrderCharge'Variants
    = OrderCharge'Charge Charge | OrderCharge'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON OrderCharge'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON OrderCharge'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema orderCustomer\'
-- 
-- The customer used for the order.
data OrderCustomer'Variants
    = OrderCustomer'Customer Customer
    | OrderCustomer'DeletedCustomer DeletedCustomer
    | OrderCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON OrderCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON OrderCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema orderMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data OrderMetadata' = OrderMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON OrderMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON OrderMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrderMetadata'" (\obj -> GHC.Base.pure OrderMetadata')
-- | Defines the enum schema orderObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data OrderObject'
    = OrderObject'EnumOther Data.Aeson.Types.Internal.Value
    | OrderObject'EnumTyped GHC.Base.String
    | OrderObject'EnumStringOrder
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON OrderObject'
    where toJSON (OrderObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (OrderObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (OrderObject'EnumStringOrder) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "order"
instance Data.Aeson.FromJSON OrderObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "order")
                                          then OrderObject'EnumStringOrder
                                          else OrderObject'EnumOther val)
-- | Defines the data type for the schema orderReturns\'
-- 
-- A list of returns that have taken place for this order.
data OrderReturns' = OrderReturns' {
  -- | data: Details about each object.
  orderReturns'Data :: ([] OrderReturn)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , orderReturns'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , orderReturns'Object :: OrderReturns'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderReturns'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON OrderReturns'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (orderReturns'Data obj) : (Data.Aeson..=) "has_more" (orderReturns'HasMore obj) : (Data.Aeson..=) "object" (orderReturns'Object obj) : (Data.Aeson..=) "url" (orderReturns'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (orderReturns'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (orderReturns'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (orderReturns'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (orderReturns'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON OrderReturns'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrderReturns'" (\obj -> (((GHC.Base.pure OrderReturns' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema orderReturns\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data OrderReturns'Object'
    = OrderReturns'Object'EnumOther Data.Aeson.Types.Internal.Value
    | OrderReturns'Object'EnumTyped GHC.Base.String
    | OrderReturns'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON OrderReturns'Object'
    where toJSON (OrderReturns'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (OrderReturns'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (OrderReturns'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON OrderReturns'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then OrderReturns'Object'EnumStringList
                                          else OrderReturns'Object'EnumOther val)
-- | Defines the data type for the schema orderShipping\'
-- 
-- The shipping address for the order. Present if the order is for goods to be shipped.
data OrderShipping' = OrderShipping' {
  -- | address: 
  orderShipping'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
  , orderShipping'Carrier :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Recipient name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderShipping'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Recipient phone (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderShipping'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | 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
  , orderShipping'TrackingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON OrderShipping'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (orderShipping'Address obj) : (Data.Aeson..=) "carrier" (orderShipping'Carrier obj) : (Data.Aeson..=) "name" (orderShipping'Name obj) : (Data.Aeson..=) "phone" (orderShipping'Phone obj) : (Data.Aeson..=) "tracking_number" (orderShipping'TrackingNumber obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (orderShipping'Address obj) GHC.Base.<> ((Data.Aeson..=) "carrier" (orderShipping'Carrier obj) GHC.Base.<> ((Data.Aeson..=) "name" (orderShipping'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (orderShipping'Phone obj) GHC.Base.<> (Data.Aeson..=) "tracking_number" (orderShipping'TrackingNumber obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON OrderShipping'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrderShipping'" (\obj -> ((((GHC.Base.pure OrderShipping' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "carrier")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tracking_number"))
-- | Defines the data type for the schema orderStatus_transitions\'
-- 
-- The timestamps at which the order status was updated.
data OrderStatusTransitions' = OrderStatusTransitions' {
  -- | canceled: The time that the order was canceled.
  orderStatusTransitions'Canceled :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | fulfiled: The time that the order was fulfilled.
  , orderStatusTransitions'Fulfiled :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | paid: The time that the order was paid.
  , orderStatusTransitions'Paid :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | returned: The time that the order was returned.
  , orderStatusTransitions'Returned :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON OrderStatusTransitions'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "canceled" (orderStatusTransitions'Canceled obj) : (Data.Aeson..=) "fulfiled" (orderStatusTransitions'Fulfiled obj) : (Data.Aeson..=) "paid" (orderStatusTransitions'Paid obj) : (Data.Aeson..=) "returned" (orderStatusTransitions'Returned obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "canceled" (orderStatusTransitions'Canceled obj) GHC.Base.<> ((Data.Aeson..=) "fulfiled" (orderStatusTransitions'Fulfiled obj) GHC.Base.<> ((Data.Aeson..=) "paid" (orderStatusTransitions'Paid obj) GHC.Base.<> (Data.Aeson..=) "returned" (orderStatusTransitions'Returned obj))))
instance Data.Aeson.Types.FromJSON.FromJSON OrderStatusTransitions'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrderStatusTransitions'" (\obj -> (((GHC.Base.pure OrderStatusTransitions' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "canceled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fulfiled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "paid")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "returned"))
-- | Defines the data type for the schema order_item
-- 
-- A representation of the constituent items of any given order. Can be used to
-- represent [SKUs](https:\/\/stripe.com\/docs\/api\#skus), shipping costs, or taxes owed on the order.
-- 
-- Related guide: [Orders](https:\/\/stripe.com\/docs\/orders\/guide).
data OrderItem = OrderItem {
  -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the line item.
  orderItemAmount :: GHC.Integer.Type.Integer
  -- | 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).
  , orderItemCurrency :: GHC.Base.String
  -- | description: Description of the line item, meant to be displayable to the user (e.g., \`\"Express shipping\"\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderItemDescription :: GHC.Base.String
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , orderItemObject :: OrderItemObject'
  -- | parent: The ID of the associated object for this line item. Expandable if not null (e.g., expandable to a SKU).
  , orderItemParent :: (GHC.Maybe.Maybe OrderItemParent'Variants)
  -- | quantity: A positive integer representing the number of instances of \`parent\` that are included in this order item. Applicable\/present only if \`type\` is \`sku\`.
  , orderItemQuantity :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | type: The type of line item. One of \`sku\`, \`tax\`, \`shipping\`, or \`discount\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderItemType :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON OrderItem
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (orderItemAmount obj) : (Data.Aeson..=) "currency" (orderItemCurrency obj) : (Data.Aeson..=) "description" (orderItemDescription obj) : (Data.Aeson..=) "object" (orderItemObject obj) : (Data.Aeson..=) "parent" (orderItemParent obj) : (Data.Aeson..=) "quantity" (orderItemQuantity obj) : (Data.Aeson..=) "type" (orderItemType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (orderItemAmount obj) GHC.Base.<> ((Data.Aeson..=) "currency" (orderItemCurrency obj) GHC.Base.<> ((Data.Aeson..=) "description" (orderItemDescription obj) GHC.Base.<> ((Data.Aeson..=) "object" (orderItemObject obj) GHC.Base.<> ((Data.Aeson..=) "parent" (orderItemParent obj) GHC.Base.<> ((Data.Aeson..=) "quantity" (orderItemQuantity obj) GHC.Base.<> (Data.Aeson..=) "type" (orderItemType obj)))))))
instance Data.Aeson.Types.FromJSON.FromJSON OrderItem
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrderItem" (\obj -> ((((((GHC.Base.pure OrderItem GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "parent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "quantity")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Defines the enum schema order_itemObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data OrderItemObject'
    = OrderItemObject'EnumOther Data.Aeson.Types.Internal.Value
    | OrderItemObject'EnumTyped GHC.Base.String
    | OrderItemObject'EnumStringOrderItem
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON OrderItemObject'
    where toJSON (OrderItemObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (OrderItemObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (OrderItemObject'EnumStringOrderItem) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "order_item"
instance Data.Aeson.FromJSON OrderItemObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "order_item")
                                          then OrderItemObject'EnumStringOrderItem
                                          else OrderItemObject'EnumOther val)
-- | Define the one-of schema order_itemParent\'
-- 
-- The ID of the associated object for this line item. Expandable if not null (e.g., expandable to a SKU).
data OrderItemParent'Variants
    = OrderItemParent'Sku Sku | OrderItemParent'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON OrderItemParent'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON OrderItemParent'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema order_return
-- 
-- A return represents the full or partial return of a number of [order items](https:\/\/stripe.com\/docs\/api\#order_items).
-- Returns always belong to an order, and may optionally contain a refund.
-- 
-- Related guide: [Handling Returns](https:\/\/stripe.com\/docs\/orders\/guide\#handling-returns).
data OrderReturn = OrderReturn {
  -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the returned line item.
  orderReturnAmount :: GHC.Integer.Type.Integer
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , orderReturnCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , orderReturnCurrency :: GHC.Base.String
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , orderReturnId :: GHC.Base.String
  -- | items: The items included in this order return.
  , orderReturnItems :: ([] OrderItem)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , orderReturnLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , orderReturnObject :: OrderReturnObject'
  -- | order: The order that this return includes items from.
  , orderReturnOrder :: (GHC.Maybe.Maybe OrderReturnOrder'Variants)
  -- | refund: The ID of the refund issued for this return.
  , orderReturnRefund :: (GHC.Maybe.Maybe OrderReturnRefund'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON OrderReturn
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (orderReturnAmount obj) : (Data.Aeson..=) "created" (orderReturnCreated obj) : (Data.Aeson..=) "currency" (orderReturnCurrency obj) : (Data.Aeson..=) "id" (orderReturnId obj) : (Data.Aeson..=) "items" (orderReturnItems obj) : (Data.Aeson..=) "livemode" (orderReturnLivemode obj) : (Data.Aeson..=) "object" (orderReturnObject obj) : (Data.Aeson..=) "order" (orderReturnOrder obj) : (Data.Aeson..=) "refund" (orderReturnRefund obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (orderReturnAmount obj) GHC.Base.<> ((Data.Aeson..=) "created" (orderReturnCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (orderReturnCurrency obj) GHC.Base.<> ((Data.Aeson..=) "id" (orderReturnId obj) GHC.Base.<> ((Data.Aeson..=) "items" (orderReturnItems obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (orderReturnLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (orderReturnObject obj) GHC.Base.<> ((Data.Aeson..=) "order" (orderReturnOrder obj) GHC.Base.<> (Data.Aeson..=) "refund" (orderReturnRefund obj)))))))))
instance Data.Aeson.Types.FromJSON.FromJSON OrderReturn
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrderReturn" (\obj -> ((((((((GHC.Base.pure OrderReturn GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "items")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "order")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "refund"))
-- | Defines the enum schema order_returnObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data OrderReturnObject'
    = OrderReturnObject'EnumOther Data.Aeson.Types.Internal.Value
    | OrderReturnObject'EnumTyped GHC.Base.String
    | OrderReturnObject'EnumStringOrderReturn
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON OrderReturnObject'
    where toJSON (OrderReturnObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (OrderReturnObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (OrderReturnObject'EnumStringOrderReturn) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "order_return"
instance Data.Aeson.FromJSON OrderReturnObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "order_return")
                                          then OrderReturnObject'EnumStringOrderReturn
                                          else OrderReturnObject'EnumOther val)
-- | Define the one-of schema order_returnOrder\'
-- 
-- The order that this return includes items from.
data OrderReturnOrder'Variants
    = OrderReturnOrder'Order Order
    | OrderReturnOrder'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON OrderReturnOrder'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON OrderReturnOrder'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema order_returnRefund\'
-- 
-- The ID of the refund issued for this return.
data OrderReturnRefund'Variants
    = OrderReturnRefund'Refund Refund
    | OrderReturnRefund'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON OrderReturnRefund'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON OrderReturnRefund'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema payment_intent
-- 
-- A PaymentIntent guides you through the process of collecting a payment from your customer.
-- We recommend that you create exactly one PaymentIntent for each order or
-- customer session in your system. You can reference the PaymentIntent later to
-- see the history of payment attempts for a particular session.
-- 
-- A PaymentIntent transitions through
-- [multiple statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses)
-- throughout its lifetime as it interfaces with Stripe.js to perform
-- authentication flows and ultimately creates at most one successful charge.
-- 
-- Related guide: [Payment Intents API](https:\/\/stripe.com\/docs\/payments\/payment-intents\/creating-payment-intents).
data PaymentIntent = PaymentIntent {
  -- | amount: Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https:\/\/stripe.com\/docs\/currencies\#zero-decimal) (e.g., 100 cents to charge \$1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is \$0.50 US or [equivalent in charge currency](https:\/\/stripe.com\/docs\/currencies\#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of \$999,999.99).
  paymentIntentAmount :: GHC.Integer.Type.Integer
  -- | amount_capturable: Amount that can be captured from this PaymentIntent.
  , paymentIntentAmountCapturable :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | amount_received: Amount that was collected by this PaymentIntent.
  , paymentIntentAmountReceived :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | application: ID of the Connect application that created the PaymentIntent.
  , paymentIntentApplication :: (GHC.Maybe.Maybe PaymentIntentApplication'Variants)
  -- | application_fee_amount: The amount of the application fee (if any) for the resulting payment. See the PaymentIntents [use case for connected accounts](https:\/\/stripe.com\/docs\/payments\/connected-accounts) for details.
  , paymentIntentApplicationFeeAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | canceled_at: Populated when \`status\` is \`canceled\`, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch.
  , paymentIntentCanceledAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | cancellation_reason: Reason for cancellation of this PaymentIntent, either user-provided (\`duplicate\`, \`fraudulent\`, \`requested_by_customer\`, or \`abandoned\`) or generated by Stripe internally (\`failed_invoice\`, \`void_invoice\`, or \`automatic\`).
  , paymentIntentCancellationReason :: (GHC.Maybe.Maybe PaymentIntentCancellationReason')
  -- | capture_method: Controls when the funds will be captured from the customer\'s account.
  , paymentIntentCaptureMethod :: PaymentIntentCaptureMethod'
  -- | charges: Charges that were created by this PaymentIntent, if any.
  , paymentIntentCharges :: (GHC.Maybe.Maybe PaymentIntentCharges')
  -- | client_secret: The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key. 
  -- 
  -- The client secret can be used to complete a payment from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.
  -- 
  -- Refer to our docs to [accept a payment](https:\/\/stripe.com\/docs\/payments\/accept-a-payment) and learn about how \`client_secret\` should be handled.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentClientSecret :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | confirmation_method
  , paymentIntentConfirmationMethod :: PaymentIntentConfirmationMethod'
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , paymentIntentCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , paymentIntentCurrency :: GHC.Base.String
  -- | customer: ID of the Customer this PaymentIntent belongs to, if one exists.
  -- 
  -- If present, payment methods used with this PaymentIntent can only be attached to this Customer, and payment methods attached to other Customers cannot be used with this PaymentIntent.
  , paymentIntentCustomer :: (GHC.Maybe.Maybe PaymentIntentCustomer'Variants)
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentId :: GHC.Base.String
  -- | invoice: ID of the invoice that created this PaymentIntent, if it exists.
  , paymentIntentInvoice :: (GHC.Maybe.Maybe PaymentIntentInvoice'Variants)
  -- | last_payment_error: The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason.
  , paymentIntentLastPaymentError :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError')
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , paymentIntentLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. For more information, see the [documentation](https:\/\/stripe.com\/docs\/payments\/payment-intents\/creating-payment-intents\#storing-information-in-metadata).
  , paymentIntentMetadata :: (GHC.Maybe.Maybe PaymentIntentMetadata')
  -- | next_action: If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source.
  , paymentIntentNextAction :: (GHC.Maybe.Maybe PaymentIntentNextAction')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , paymentIntentObject :: PaymentIntentObject'
  -- | on_behalf_of: The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents [use case for connected accounts](https:\/\/stripe.com\/docs\/payments\/connected-accounts) for details.
  , paymentIntentOnBehalfOf :: (GHC.Maybe.Maybe PaymentIntentOnBehalfOf'Variants)
  -- | payment_method: ID of the payment method used in this PaymentIntent.
  , paymentIntentPaymentMethod :: (GHC.Maybe.Maybe PaymentIntentPaymentMethod'Variants)
  -- | payment_method_options: Payment-method-specific configuration for this PaymentIntent.
  , paymentIntentPaymentMethodOptions :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptions')
  -- | payment_method_types: The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.
  , paymentIntentPaymentMethodTypes :: ([] GHC.Base.String)
  -- | receipt_email: Email address that the receipt for the resulting payment will be sent to.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentReceiptEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | review: ID of the review associated with this PaymentIntent, if any.
  , paymentIntentReview :: (GHC.Maybe.Maybe PaymentIntentReview'Variants)
  -- | setup_future_usage: Indicates that you intend to make future payments with this PaymentIntent\'s payment method.
  -- 
  -- If present, the payment method used with this PaymentIntent can be [attached](https:\/\/stripe.com\/docs\/api\/payment_methods\/attach) to a Customer, even after the transaction completes.
  -- 
  -- For more, learn to [save card details during payment](https:\/\/stripe.com\/docs\/payments\/save-during-payment).
  -- 
  -- Stripe uses \`setup_future_usage\` to dynamically optimize your payment flow and comply with regional legislation and network rules. For example, if your customer is impacted by [SCA](https:\/\/stripe.com\/docs\/strong-customer-authentication), using \`off_session\` will ensure that they are authenticated while processing this PaymentIntent. You will then be able to collect [off-session payments](https:\/\/stripe.com\/docs\/payments\/cards\/charging-saved-cards\#off-session-payments-with-saved-cards) for this customer.
  , paymentIntentSetupFutureUsage :: (GHC.Maybe.Maybe PaymentIntentSetupFutureUsage')
  -- | shipping: Shipping information for this PaymentIntent.
  , paymentIntentShipping :: (GHC.Maybe.Maybe PaymentIntentShipping')
  -- | statement_descriptor: For non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentStatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | statement_descriptor_suffix: Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentStatementDescriptorSuffix :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: Status of this PaymentIntent, one of \`requires_payment_method\`, \`requires_confirmation\`, \`requires_action\`, \`processing\`, \`requires_capture\`, \`canceled\`, or \`succeeded\`. Read more about each PaymentIntent [status](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses).
  , paymentIntentStatus :: PaymentIntentStatus'
  -- | transfer_data: The data with which to automatically create a Transfer when the payment is finalized. See the PaymentIntents [use case for connected accounts](https:\/\/stripe.com\/docs\/payments\/connected-accounts) for details.
  , paymentIntentTransferData :: (GHC.Maybe.Maybe PaymentIntentTransferData')
  -- | transfer_group: A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https:\/\/stripe.com\/docs\/payments\/connected-accounts) for details.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentTransferGroup :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntent
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (paymentIntentAmount obj) : (Data.Aeson..=) "amount_capturable" (paymentIntentAmountCapturable obj) : (Data.Aeson..=) "amount_received" (paymentIntentAmountReceived obj) : (Data.Aeson..=) "application" (paymentIntentApplication obj) : (Data.Aeson..=) "application_fee_amount" (paymentIntentApplicationFeeAmount obj) : (Data.Aeson..=) "canceled_at" (paymentIntentCanceledAt obj) : (Data.Aeson..=) "cancellation_reason" (paymentIntentCancellationReason obj) : (Data.Aeson..=) "capture_method" (paymentIntentCaptureMethod obj) : (Data.Aeson..=) "charges" (paymentIntentCharges obj) : (Data.Aeson..=) "client_secret" (paymentIntentClientSecret obj) : (Data.Aeson..=) "confirmation_method" (paymentIntentConfirmationMethod obj) : (Data.Aeson..=) "created" (paymentIntentCreated obj) : (Data.Aeson..=) "currency" (paymentIntentCurrency obj) : (Data.Aeson..=) "customer" (paymentIntentCustomer obj) : (Data.Aeson..=) "description" (paymentIntentDescription obj) : (Data.Aeson..=) "id" (paymentIntentId obj) : (Data.Aeson..=) "invoice" (paymentIntentInvoice obj) : (Data.Aeson..=) "last_payment_error" (paymentIntentLastPaymentError obj) : (Data.Aeson..=) "livemode" (paymentIntentLivemode obj) : (Data.Aeson..=) "metadata" (paymentIntentMetadata obj) : (Data.Aeson..=) "next_action" (paymentIntentNextAction obj) : (Data.Aeson..=) "object" (paymentIntentObject obj) : (Data.Aeson..=) "on_behalf_of" (paymentIntentOnBehalfOf obj) : (Data.Aeson..=) "payment_method" (paymentIntentPaymentMethod obj) : (Data.Aeson..=) "payment_method_options" (paymentIntentPaymentMethodOptions obj) : (Data.Aeson..=) "payment_method_types" (paymentIntentPaymentMethodTypes obj) : (Data.Aeson..=) "receipt_email" (paymentIntentReceiptEmail obj) : (Data.Aeson..=) "review" (paymentIntentReview obj) : (Data.Aeson..=) "setup_future_usage" (paymentIntentSetupFutureUsage obj) : (Data.Aeson..=) "shipping" (paymentIntentShipping obj) : (Data.Aeson..=) "statement_descriptor" (paymentIntentStatementDescriptor obj) : (Data.Aeson..=) "statement_descriptor_suffix" (paymentIntentStatementDescriptorSuffix obj) : (Data.Aeson..=) "status" (paymentIntentStatus obj) : (Data.Aeson..=) "transfer_data" (paymentIntentTransferData obj) : (Data.Aeson..=) "transfer_group" (paymentIntentTransferGroup obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (paymentIntentAmount obj) GHC.Base.<> ((Data.Aeson..=) "amount_capturable" (paymentIntentAmountCapturable obj) GHC.Base.<> ((Data.Aeson..=) "amount_received" (paymentIntentAmountReceived obj) GHC.Base.<> ((Data.Aeson..=) "application" (paymentIntentApplication obj) GHC.Base.<> ((Data.Aeson..=) "application_fee_amount" (paymentIntentApplicationFeeAmount obj) GHC.Base.<> ((Data.Aeson..=) "canceled_at" (paymentIntentCanceledAt obj) GHC.Base.<> ((Data.Aeson..=) "cancellation_reason" (paymentIntentCancellationReason obj) GHC.Base.<> ((Data.Aeson..=) "capture_method" (paymentIntentCaptureMethod obj) GHC.Base.<> ((Data.Aeson..=) "charges" (paymentIntentCharges obj) GHC.Base.<> ((Data.Aeson..=) "client_secret" (paymentIntentClientSecret obj) GHC.Base.<> ((Data.Aeson..=) "confirmation_method" (paymentIntentConfirmationMethod obj) GHC.Base.<> ((Data.Aeson..=) "created" (paymentIntentCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (paymentIntentCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (paymentIntentCustomer obj) GHC.Base.<> ((Data.Aeson..=) "description" (paymentIntentDescription obj) GHC.Base.<> ((Data.Aeson..=) "id" (paymentIntentId obj) GHC.Base.<> ((Data.Aeson..=) "invoice" (paymentIntentInvoice obj) GHC.Base.<> ((Data.Aeson..=) "last_payment_error" (paymentIntentLastPaymentError obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (paymentIntentLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (paymentIntentMetadata obj) GHC.Base.<> ((Data.Aeson..=) "next_action" (paymentIntentNextAction obj) GHC.Base.<> ((Data.Aeson..=) "object" (paymentIntentObject obj) GHC.Base.<> ((Data.Aeson..=) "on_behalf_of" (paymentIntentOnBehalfOf obj) GHC.Base.<> ((Data.Aeson..=) "payment_method" (paymentIntentPaymentMethod obj) GHC.Base.<> ((Data.Aeson..=) "payment_method_options" (paymentIntentPaymentMethodOptions obj) GHC.Base.<> ((Data.Aeson..=) "payment_method_types" (paymentIntentPaymentMethodTypes obj) GHC.Base.<> ((Data.Aeson..=) "receipt_email" (paymentIntentReceiptEmail obj) GHC.Base.<> ((Data.Aeson..=) "review" (paymentIntentReview obj) GHC.Base.<> ((Data.Aeson..=) "setup_future_usage" (paymentIntentSetupFutureUsage obj) GHC.Base.<> ((Data.Aeson..=) "shipping" (paymentIntentShipping obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (paymentIntentStatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor_suffix" (paymentIntentStatementDescriptorSuffix obj) GHC.Base.<> ((Data.Aeson..=) "status" (paymentIntentStatus obj) GHC.Base.<> ((Data.Aeson..=) "transfer_data" (paymentIntentTransferData obj) GHC.Base.<> (Data.Aeson..=) "transfer_group" (paymentIntentTransferGroup obj)))))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntent
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntent" (\obj -> ((((((((((((((((((((((((((((((((((GHC.Base.pure PaymentIntent GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_capturable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_received")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application_fee_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "canceled_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cancellation_reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "capture_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charges")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_secret")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "confirmation_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last_payment_error")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "next_action")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "on_behalf_of")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method_options")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "payment_method_types")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receipt_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "review")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "setup_future_usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor_suffix")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transfer_data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transfer_group"))
-- | Define the one-of schema payment_intentApplication\'
-- 
-- ID of the Connect application that created the PaymentIntent.
data PaymentIntentApplication'Variants
    = PaymentIntentApplication'Application Application
    | PaymentIntentApplication'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentIntentApplication'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentIntentApplication'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema payment_intentCancellation_reason\'
-- 
-- Reason for cancellation of this PaymentIntent, either user-provided (\`duplicate\`, \`fraudulent\`, \`requested_by_customer\`, or \`abandoned\`) or generated by Stripe internally (\`failed_invoice\`, \`void_invoice\`, or \`automatic\`).
data PaymentIntentCancellationReason'
    = PaymentIntentCancellationReason'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentCancellationReason'EnumTyped GHC.Base.String
    | PaymentIntentCancellationReason'EnumStringAbandoned
    | PaymentIntentCancellationReason'EnumStringAutomatic
    | PaymentIntentCancellationReason'EnumStringDuplicate
    | PaymentIntentCancellationReason'EnumStringFailedInvoice
    | PaymentIntentCancellationReason'EnumStringFraudulent
    | PaymentIntentCancellationReason'EnumStringRequestedByCustomer
    | PaymentIntentCancellationReason'EnumStringVoidInvoice
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentCancellationReason'
    where toJSON (PaymentIntentCancellationReason'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentCancellationReason'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentCancellationReason'EnumStringAbandoned) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "abandoned"
          toJSON (PaymentIntentCancellationReason'EnumStringAutomatic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automatic"
          toJSON (PaymentIntentCancellationReason'EnumStringDuplicate) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duplicate"
          toJSON (PaymentIntentCancellationReason'EnumStringFailedInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "failed_invoice"
          toJSON (PaymentIntentCancellationReason'EnumStringFraudulent) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fraudulent"
          toJSON (PaymentIntentCancellationReason'EnumStringRequestedByCustomer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requested_by_customer"
          toJSON (PaymentIntentCancellationReason'EnumStringVoidInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "void_invoice"
instance Data.Aeson.FromJSON PaymentIntentCancellationReason'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "abandoned")
                                          then PaymentIntentCancellationReason'EnumStringAbandoned
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automatic")
                                                then PaymentIntentCancellationReason'EnumStringAutomatic
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duplicate")
                                                      then PaymentIntentCancellationReason'EnumStringDuplicate
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "failed_invoice")
                                                            then PaymentIntentCancellationReason'EnumStringFailedInvoice
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fraudulent")
                                                                  then PaymentIntentCancellationReason'EnumStringFraudulent
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requested_by_customer")
                                                                        then PaymentIntentCancellationReason'EnumStringRequestedByCustomer
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "void_invoice")
                                                                              then PaymentIntentCancellationReason'EnumStringVoidInvoice
                                                                              else PaymentIntentCancellationReason'EnumOther val)
-- | Defines the enum schema payment_intentCapture_method\'
-- 
-- Controls when the funds will be captured from the customer\'s account.
data PaymentIntentCaptureMethod'
    = PaymentIntentCaptureMethod'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentCaptureMethod'EnumTyped GHC.Base.String
    | PaymentIntentCaptureMethod'EnumStringAutomatic
    | PaymentIntentCaptureMethod'EnumStringManual
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentCaptureMethod'
    where toJSON (PaymentIntentCaptureMethod'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentCaptureMethod'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentCaptureMethod'EnumStringAutomatic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automatic"
          toJSON (PaymentIntentCaptureMethod'EnumStringManual) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual"
instance Data.Aeson.FromJSON PaymentIntentCaptureMethod'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automatic")
                                          then PaymentIntentCaptureMethod'EnumStringAutomatic
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual")
                                                then PaymentIntentCaptureMethod'EnumStringManual
                                                else PaymentIntentCaptureMethod'EnumOther val)
-- | Defines the data type for the schema payment_intentCharges\'
-- 
-- Charges that were created by this PaymentIntent, if any.
data PaymentIntentCharges' = PaymentIntentCharges' {
  -- | data: This list only contains the latest charge, even if there were previously multiple unsuccessful charges. To view all previous charges for a PaymentIntent, you can filter the charges list using the \`payment_intent\` [parameter](https:\/\/stripe.com\/docs\/api\/charges\/list\#list_charges-payment_intent).
  paymentIntentCharges'Data :: ([] Charge)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , paymentIntentCharges'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , paymentIntentCharges'Object :: PaymentIntentCharges'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentCharges'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentCharges'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (paymentIntentCharges'Data obj) : (Data.Aeson..=) "has_more" (paymentIntentCharges'HasMore obj) : (Data.Aeson..=) "object" (paymentIntentCharges'Object obj) : (Data.Aeson..=) "url" (paymentIntentCharges'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (paymentIntentCharges'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (paymentIntentCharges'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (paymentIntentCharges'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (paymentIntentCharges'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentCharges'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentCharges'" (\obj -> (((GHC.Base.pure PaymentIntentCharges' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema payment_intentCharges\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data PaymentIntentCharges'Object'
    = PaymentIntentCharges'Object'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentCharges'Object'EnumTyped GHC.Base.String
    | PaymentIntentCharges'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentCharges'Object'
    where toJSON (PaymentIntentCharges'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentCharges'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentCharges'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON PaymentIntentCharges'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then PaymentIntentCharges'Object'EnumStringList
                                          else PaymentIntentCharges'Object'EnumOther val)
-- | Defines the enum schema payment_intentConfirmation_method\'
-- 
-- 
data PaymentIntentConfirmationMethod'
    = PaymentIntentConfirmationMethod'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentConfirmationMethod'EnumTyped GHC.Base.String
    | PaymentIntentConfirmationMethod'EnumStringAutomatic
    | PaymentIntentConfirmationMethod'EnumStringManual
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentConfirmationMethod'
    where toJSON (PaymentIntentConfirmationMethod'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentConfirmationMethod'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentConfirmationMethod'EnumStringAutomatic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automatic"
          toJSON (PaymentIntentConfirmationMethod'EnumStringManual) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual"
instance Data.Aeson.FromJSON PaymentIntentConfirmationMethod'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automatic")
                                          then PaymentIntentConfirmationMethod'EnumStringAutomatic
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual")
                                                then PaymentIntentConfirmationMethod'EnumStringManual
                                                else PaymentIntentConfirmationMethod'EnumOther val)
-- | Define the one-of schema payment_intentCustomer\'
-- 
-- ID of the Customer this PaymentIntent belongs to, if one exists.
-- 
-- If present, payment methods used with this PaymentIntent can only be attached to this Customer, and payment methods attached to other Customers cannot be used with this PaymentIntent.
data PaymentIntentCustomer'Variants
    = PaymentIntentCustomer'Customer Customer
    | PaymentIntentCustomer'DeletedCustomer DeletedCustomer
    | PaymentIntentCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentIntentCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentIntentCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema payment_intentInvoice\'
-- 
-- ID of the invoice that created this PaymentIntent, if it exists.
data PaymentIntentInvoice'Variants
    = PaymentIntentInvoice'Invoice Invoice
    | PaymentIntentInvoice'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentIntentInvoice'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentIntentInvoice'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema payment_intentLast_payment_error\'
-- 
-- The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason.
data PaymentIntentLastPaymentError' = PaymentIntentLastPaymentError' {
  -- | charge: For card errors, the ID of the failed charge.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentIntentLastPaymentError'Charge :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | code: For some errors that could be handled programmatically, a short string indicating the [error code](https:\/\/stripe.com\/docs\/error-codes) reported.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Code :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | decline_code: For card errors resulting from a card issuer decline, a short string indicating the [card issuer\'s reason for the decline](https:\/\/stripe.com\/docs\/declines\#issuer-declines) if they provide one.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'DeclineCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | doc_url: A URL to more information about the [error code](https:\/\/stripe.com\/docs\/error-codes) reported.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'DocUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | message: A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 40000
  , paymentIntentLastPaymentError'Message :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | param: If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Param :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | payment_intent: A PaymentIntent guides you through the process of collecting a payment from your customer.
  -- We recommend that you create exactly one PaymentIntent for each order or
  -- customer session in your system. You can reference the PaymentIntent later to
  -- see the history of payment attempts for a particular session.
  -- 
  -- A PaymentIntent transitions through
  -- [multiple statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses)
  -- throughout its lifetime as it interfaces with Stripe.js to perform
  -- authentication flows and ultimately creates at most one successful charge.
  -- 
  -- Related guide: [Payment Intents API](https:\/\/stripe.com\/docs\/payments\/payment-intents\/creating-payment-intents).
  , paymentIntentLastPaymentError'PaymentIntent :: (GHC.Maybe.Maybe PaymentIntent)
  -- | payment_method: PaymentMethod objects represent your customer\'s payment instruments.
  -- They can be used with [PaymentIntents](https:\/\/stripe.com\/docs\/payments\/payment-intents) to collect payments or saved to
  -- Customer objects to store instrument details for future payments.
  -- 
  -- Related guides: [Payment Methods](https:\/\/stripe.com\/docs\/payments\/payment-methods) and [More Payment Scenarios](https:\/\/stripe.com\/docs\/payments\/more-payment-scenarios).
  , paymentIntentLastPaymentError'PaymentMethod :: (GHC.Maybe.Maybe PaymentMethod)
  -- | setup_intent: A SetupIntent guides you through the process of setting up a customer\'s payment credentials for future payments.
  -- For example, you could use a SetupIntent to set up your customer\'s card without immediately collecting a payment.
  -- Later, you can use [PaymentIntents](https:\/\/stripe.com\/docs\/api\#payment_intents) to drive the payment flow.
  -- 
  -- Create a SetupIntent as soon as you\'re ready to collect your customer\'s payment credentials.
  -- Do not maintain long-lived, unconfirmed SetupIntents as they may no longer be valid.
  -- The SetupIntent then transitions through multiple [statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses) as it guides
  -- you through the setup process.
  -- 
  -- Successful SetupIntents result in payment credentials that are optimized for future payments.
  -- For example, cardholders in [certain regions](\/guides\/strong-customer-authentication) may need to be run through
  -- [Strong Customer Authentication](https:\/\/stripe.com\/docs\/strong-customer-authentication) at the time of payment method collection
  -- in order to streamline later [off-session payments](https:\/\/stripe.com\/docs\/payments\/setup-intents).
  -- 
  -- By using SetupIntents, you ensure that your customers experience the minimum set of required friction,
  -- even as regulations change over time.
  , paymentIntentLastPaymentError'SetupIntent :: (GHC.Maybe.Maybe SetupIntent)
  -- | source: The source object for errors returned on a request involving a source.
  , paymentIntentLastPaymentError'Source :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Source')
  -- | type: The type of error returned. One of \`api_connection_error\`, \`api_error\`, \`authentication_error\`, \`card_error\`, \`idempotency_error\`, \`invalid_request_error\`, or \`rate_limit_error\`
  , paymentIntentLastPaymentError'Type :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Type')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "charge" (paymentIntentLastPaymentError'Charge obj) : (Data.Aeson..=) "code" (paymentIntentLastPaymentError'Code obj) : (Data.Aeson..=) "decline_code" (paymentIntentLastPaymentError'DeclineCode obj) : (Data.Aeson..=) "doc_url" (paymentIntentLastPaymentError'DocUrl obj) : (Data.Aeson..=) "message" (paymentIntentLastPaymentError'Message obj) : (Data.Aeson..=) "param" (paymentIntentLastPaymentError'Param obj) : (Data.Aeson..=) "payment_intent" (paymentIntentLastPaymentError'PaymentIntent obj) : (Data.Aeson..=) "payment_method" (paymentIntentLastPaymentError'PaymentMethod obj) : (Data.Aeson..=) "setup_intent" (paymentIntentLastPaymentError'SetupIntent obj) : (Data.Aeson..=) "source" (paymentIntentLastPaymentError'Source obj) : (Data.Aeson..=) "type" (paymentIntentLastPaymentError'Type obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "charge" (paymentIntentLastPaymentError'Charge obj) GHC.Base.<> ((Data.Aeson..=) "code" (paymentIntentLastPaymentError'Code obj) GHC.Base.<> ((Data.Aeson..=) "decline_code" (paymentIntentLastPaymentError'DeclineCode obj) GHC.Base.<> ((Data.Aeson..=) "doc_url" (paymentIntentLastPaymentError'DocUrl obj) GHC.Base.<> ((Data.Aeson..=) "message" (paymentIntentLastPaymentError'Message obj) GHC.Base.<> ((Data.Aeson..=) "param" (paymentIntentLastPaymentError'Param obj) GHC.Base.<> ((Data.Aeson..=) "payment_intent" (paymentIntentLastPaymentError'PaymentIntent obj) GHC.Base.<> ((Data.Aeson..=) "payment_method" (paymentIntentLastPaymentError'PaymentMethod obj) GHC.Base.<> ((Data.Aeson..=) "setup_intent" (paymentIntentLastPaymentError'SetupIntent obj) GHC.Base.<> ((Data.Aeson..=) "source" (paymentIntentLastPaymentError'Source obj) GHC.Base.<> (Data.Aeson..=) "type" (paymentIntentLastPaymentError'Type obj)))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentLastPaymentError'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentLastPaymentError'" (\obj -> ((((((((((GHC.Base.pure PaymentIntentLastPaymentError' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "decline_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "doc_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "message")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "param")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "setup_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the data type for the schema payment_intentLast_payment_error\'Source\'
-- 
-- The source object for errors returned on a request involving a source.
data PaymentIntentLastPaymentError'Source' = PaymentIntentLastPaymentError'Source' {
  -- | account: The ID of the account that the bank account is associated with.
  paymentIntentLastPaymentError'Source'Account :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Source'Account'Variants)
  -- | account_holder_name: The name of the person or business that owns the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'AccountHolderName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'AccountHolderType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ach_credit_transfer
  , paymentIntentLastPaymentError'Source'AchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer)
  -- | ach_debit
  , paymentIntentLastPaymentError'Source'AchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit)
  -- | address_city: City\/District\/Suburb\/Town\/Village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'AddressCity :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_country: Billing address country, if provided when creating card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'AddressCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'AddressLine1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'AddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'AddressLine2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_state: State\/County\/Province\/Region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'AddressState :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'AddressZip :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'AddressZipCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | alipay
  , paymentIntentLastPaymentError'Source'Alipay :: (GHC.Maybe.Maybe SourceTypeAlipay)
  -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for \`single_use\` sources.
  , paymentIntentLastPaymentError'Source'Amount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | available_payout_methods: A set of available payout methods for this card. Will be either \`[\"standard\"]\` or \`[\"standard\", \"instant\"]\`. Only values from this set should be passed as the \`method\` when creating a transfer.
  , paymentIntentLastPaymentError'Source'AvailablePayoutMethods :: (GHC.Maybe.Maybe ([] PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'))
  -- | bancontact
  , paymentIntentLastPaymentError'Source'Bancontact :: (GHC.Maybe.Maybe SourceTypeBancontact)
  -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'BankName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Brand :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | card
  , paymentIntentLastPaymentError'Source'Card :: (GHC.Maybe.Maybe SourceTypeCard)
  -- | card_present
  , paymentIntentLastPaymentError'Source'CardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent)
  -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'ClientSecret :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | code_verification: 
  , paymentIntentLastPaymentError'Source'CodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow)
  -- | country: Two-letter ISO code representing the country the bank account is located in.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , paymentIntentLastPaymentError'Source'Created :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  , paymentIntentLastPaymentError'Source'Currency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The ID of the customer that the bank account is associated with.
  , paymentIntentLastPaymentError'Source'Customer :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Source'Customer'Variants)
  -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'CvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_for_currency: Whether this bank account is the default external account for its currency.
  , paymentIntentLastPaymentError'Source'DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'DynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | eps
  , paymentIntentLastPaymentError'Source'Eps :: (GHC.Maybe.Maybe SourceTypeEps)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , paymentIntentLastPaymentError'Source'ExpMonth :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , paymentIntentLastPaymentError'Source'ExpYear :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Fingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | flow: The authentication \`flow\` of the source. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Flow :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Funding :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | giropay
  , paymentIntentLastPaymentError'Source'Giropay :: (GHC.Maybe.Maybe SourceTypeGiropay)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ideal
  , paymentIntentLastPaymentError'Source'Ideal :: (GHC.Maybe.Maybe SourceTypeIdeal)
  -- | klarna
  , paymentIntentLastPaymentError'Source'Klarna :: (GHC.Maybe.Maybe SourceTypeKlarna)
  -- | last4: The last four digits of the bank account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Last4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , paymentIntentLastPaymentError'Source'Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , paymentIntentLastPaymentError'Source'Metadata :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Source'Metadata')
  -- | multibanco
  , paymentIntentLastPaymentError'Source'Multibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco)
  -- | name: Cardholder name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , paymentIntentLastPaymentError'Source'Object :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Source'Object')
  -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
  , paymentIntentLastPaymentError'Source'Owner :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Source'Owner')
  -- | p24
  , paymentIntentLastPaymentError'Source'P24 :: (GHC.Maybe.Maybe SourceTypeP24)
  -- | receiver: 
  , paymentIntentLastPaymentError'Source'Receiver :: (GHC.Maybe.Maybe SourceReceiverFlow)
  -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
  , paymentIntentLastPaymentError'Source'Recipient :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Source'Recipient'Variants)
  -- | redirect: 
  , paymentIntentLastPaymentError'Source'Redirect :: (GHC.Maybe.Maybe SourceRedirectFlow)
  -- | routing_number: The routing transit number for the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'RoutingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | sepa_debit
  , paymentIntentLastPaymentError'Source'SepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit)
  -- | sofort
  , paymentIntentLastPaymentError'Source'Sofort :: (GHC.Maybe.Maybe SourceTypeSofort)
  -- | source_order: 
  , paymentIntentLastPaymentError'Source'SourceOrder :: (GHC.Maybe.Maybe SourceOrder)
  -- | statement_descriptor: Extra information about a source. This will appear on your customer\'s statement every time you charge the source.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'StatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
  -- 
  -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Status :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | three_d_secure
  , paymentIntentLastPaymentError'Source'ThreeDSecure :: (GHC.Maybe.Maybe SourceTypeThreeDSecure)
  -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`amex_express_checkout\`, \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'TokenizationMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | type: The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
  , paymentIntentLastPaymentError'Source'Type :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Source'Type')
  -- | usage: Either \`reusable\` or \`single_use\`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Usage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | wechat
  , paymentIntentLastPaymentError'Source'Wechat :: (GHC.Maybe.Maybe SourceTypeWechat)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (paymentIntentLastPaymentError'Source'Account obj) : (Data.Aeson..=) "account_holder_name" (paymentIntentLastPaymentError'Source'AccountHolderName obj) : (Data.Aeson..=) "account_holder_type" (paymentIntentLastPaymentError'Source'AccountHolderType obj) : (Data.Aeson..=) "ach_credit_transfer" (paymentIntentLastPaymentError'Source'AchCreditTransfer obj) : (Data.Aeson..=) "ach_debit" (paymentIntentLastPaymentError'Source'AchDebit obj) : (Data.Aeson..=) "address_city" (paymentIntentLastPaymentError'Source'AddressCity obj) : (Data.Aeson..=) "address_country" (paymentIntentLastPaymentError'Source'AddressCountry obj) : (Data.Aeson..=) "address_line1" (paymentIntentLastPaymentError'Source'AddressLine1 obj) : (Data.Aeson..=) "address_line1_check" (paymentIntentLastPaymentError'Source'AddressLine1Check obj) : (Data.Aeson..=) "address_line2" (paymentIntentLastPaymentError'Source'AddressLine2 obj) : (Data.Aeson..=) "address_state" (paymentIntentLastPaymentError'Source'AddressState obj) : (Data.Aeson..=) "address_zip" (paymentIntentLastPaymentError'Source'AddressZip obj) : (Data.Aeson..=) "address_zip_check" (paymentIntentLastPaymentError'Source'AddressZipCheck obj) : (Data.Aeson..=) "alipay" (paymentIntentLastPaymentError'Source'Alipay obj) : (Data.Aeson..=) "amount" (paymentIntentLastPaymentError'Source'Amount obj) : (Data.Aeson..=) "available_payout_methods" (paymentIntentLastPaymentError'Source'AvailablePayoutMethods obj) : (Data.Aeson..=) "bancontact" (paymentIntentLastPaymentError'Source'Bancontact obj) : (Data.Aeson..=) "bank_name" (paymentIntentLastPaymentError'Source'BankName obj) : (Data.Aeson..=) "brand" (paymentIntentLastPaymentError'Source'Brand obj) : (Data.Aeson..=) "card" (paymentIntentLastPaymentError'Source'Card obj) : (Data.Aeson..=) "card_present" (paymentIntentLastPaymentError'Source'CardPresent obj) : (Data.Aeson..=) "client_secret" (paymentIntentLastPaymentError'Source'ClientSecret obj) : (Data.Aeson..=) "code_verification" (paymentIntentLastPaymentError'Source'CodeVerification obj) : (Data.Aeson..=) "country" (paymentIntentLastPaymentError'Source'Country obj) : (Data.Aeson..=) "created" (paymentIntentLastPaymentError'Source'Created obj) : (Data.Aeson..=) "currency" (paymentIntentLastPaymentError'Source'Currency obj) : (Data.Aeson..=) "customer" (paymentIntentLastPaymentError'Source'Customer obj) : (Data.Aeson..=) "cvc_check" (paymentIntentLastPaymentError'Source'CvcCheck obj) : (Data.Aeson..=) "default_for_currency" (paymentIntentLastPaymentError'Source'DefaultForCurrency obj) : (Data.Aeson..=) "dynamic_last4" (paymentIntentLastPaymentError'Source'DynamicLast4 obj) : (Data.Aeson..=) "eps" (paymentIntentLastPaymentError'Source'Eps obj) : (Data.Aeson..=) "exp_month" (paymentIntentLastPaymentError'Source'ExpMonth obj) : (Data.Aeson..=) "exp_year" (paymentIntentLastPaymentError'Source'ExpYear obj) : (Data.Aeson..=) "fingerprint" (paymentIntentLastPaymentError'Source'Fingerprint obj) : (Data.Aeson..=) "flow" (paymentIntentLastPaymentError'Source'Flow obj) : (Data.Aeson..=) "funding" (paymentIntentLastPaymentError'Source'Funding obj) : (Data.Aeson..=) "giropay" (paymentIntentLastPaymentError'Source'Giropay obj) : (Data.Aeson..=) "id" (paymentIntentLastPaymentError'Source'Id obj) : (Data.Aeson..=) "ideal" (paymentIntentLastPaymentError'Source'Ideal obj) : (Data.Aeson..=) "klarna" (paymentIntentLastPaymentError'Source'Klarna obj) : (Data.Aeson..=) "last4" (paymentIntentLastPaymentError'Source'Last4 obj) : (Data.Aeson..=) "livemode" (paymentIntentLastPaymentError'Source'Livemode obj) : (Data.Aeson..=) "metadata" (paymentIntentLastPaymentError'Source'Metadata obj) : (Data.Aeson..=) "multibanco" (paymentIntentLastPaymentError'Source'Multibanco obj) : (Data.Aeson..=) "name" (paymentIntentLastPaymentError'Source'Name obj) : (Data.Aeson..=) "object" (paymentIntentLastPaymentError'Source'Object obj) : (Data.Aeson..=) "owner" (paymentIntentLastPaymentError'Source'Owner obj) : (Data.Aeson..=) "p24" (paymentIntentLastPaymentError'Source'P24 obj) : (Data.Aeson..=) "receiver" (paymentIntentLastPaymentError'Source'Receiver obj) : (Data.Aeson..=) "recipient" (paymentIntentLastPaymentError'Source'Recipient obj) : (Data.Aeson..=) "redirect" (paymentIntentLastPaymentError'Source'Redirect obj) : (Data.Aeson..=) "routing_number" (paymentIntentLastPaymentError'Source'RoutingNumber obj) : (Data.Aeson..=) "sepa_debit" (paymentIntentLastPaymentError'Source'SepaDebit obj) : (Data.Aeson..=) "sofort" (paymentIntentLastPaymentError'Source'Sofort obj) : (Data.Aeson..=) "source_order" (paymentIntentLastPaymentError'Source'SourceOrder obj) : (Data.Aeson..=) "statement_descriptor" (paymentIntentLastPaymentError'Source'StatementDescriptor obj) : (Data.Aeson..=) "status" (paymentIntentLastPaymentError'Source'Status obj) : (Data.Aeson..=) "three_d_secure" (paymentIntentLastPaymentError'Source'ThreeDSecure obj) : (Data.Aeson..=) "tokenization_method" (paymentIntentLastPaymentError'Source'TokenizationMethod obj) : (Data.Aeson..=) "type" (paymentIntentLastPaymentError'Source'Type obj) : (Data.Aeson..=) "usage" (paymentIntentLastPaymentError'Source'Usage obj) : (Data.Aeson..=) "wechat" (paymentIntentLastPaymentError'Source'Wechat obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (paymentIntentLastPaymentError'Source'Account obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_name" (paymentIntentLastPaymentError'Source'AccountHolderName obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_type" (paymentIntentLastPaymentError'Source'AccountHolderType obj) GHC.Base.<> ((Data.Aeson..=) "ach_credit_transfer" (paymentIntentLastPaymentError'Source'AchCreditTransfer obj) GHC.Base.<> ((Data.Aeson..=) "ach_debit" (paymentIntentLastPaymentError'Source'AchDebit obj) GHC.Base.<> ((Data.Aeson..=) "address_city" (paymentIntentLastPaymentError'Source'AddressCity obj) GHC.Base.<> ((Data.Aeson..=) "address_country" (paymentIntentLastPaymentError'Source'AddressCountry obj) GHC.Base.<> ((Data.Aeson..=) "address_line1" (paymentIntentLastPaymentError'Source'AddressLine1 obj) GHC.Base.<> ((Data.Aeson..=) "address_line1_check" (paymentIntentLastPaymentError'Source'AddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_line2" (paymentIntentLastPaymentError'Source'AddressLine2 obj) GHC.Base.<> ((Data.Aeson..=) "address_state" (paymentIntentLastPaymentError'Source'AddressState obj) GHC.Base.<> ((Data.Aeson..=) "address_zip" (paymentIntentLastPaymentError'Source'AddressZip obj) GHC.Base.<> ((Data.Aeson..=) "address_zip_check" (paymentIntentLastPaymentError'Source'AddressZipCheck obj) GHC.Base.<> ((Data.Aeson..=) "alipay" (paymentIntentLastPaymentError'Source'Alipay obj) GHC.Base.<> ((Data.Aeson..=) "amount" (paymentIntentLastPaymentError'Source'Amount obj) GHC.Base.<> ((Data.Aeson..=) "available_payout_methods" (paymentIntentLastPaymentError'Source'AvailablePayoutMethods obj) GHC.Base.<> ((Data.Aeson..=) "bancontact" (paymentIntentLastPaymentError'Source'Bancontact obj) GHC.Base.<> ((Data.Aeson..=) "bank_name" (paymentIntentLastPaymentError'Source'BankName obj) GHC.Base.<> ((Data.Aeson..=) "brand" (paymentIntentLastPaymentError'Source'Brand obj) GHC.Base.<> ((Data.Aeson..=) "card" (paymentIntentLastPaymentError'Source'Card obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (paymentIntentLastPaymentError'Source'CardPresent obj) GHC.Base.<> ((Data.Aeson..=) "client_secret" (paymentIntentLastPaymentError'Source'ClientSecret obj) GHC.Base.<> ((Data.Aeson..=) "code_verification" (paymentIntentLastPaymentError'Source'CodeVerification obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentIntentLastPaymentError'Source'Country obj) GHC.Base.<> ((Data.Aeson..=) "created" (paymentIntentLastPaymentError'Source'Created obj) GHC.Base.<> ((Data.Aeson..=) "currency" (paymentIntentLastPaymentError'Source'Currency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (paymentIntentLastPaymentError'Source'Customer obj) GHC.Base.<> ((Data.Aeson..=) "cvc_check" (paymentIntentLastPaymentError'Source'CvcCheck obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (paymentIntentLastPaymentError'Source'DefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (paymentIntentLastPaymentError'Source'DynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "eps" (paymentIntentLastPaymentError'Source'Eps obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (paymentIntentLastPaymentError'Source'ExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (paymentIntentLastPaymentError'Source'ExpYear obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (paymentIntentLastPaymentError'Source'Fingerprint obj) GHC.Base.<> ((Data.Aeson..=) "flow" (paymentIntentLastPaymentError'Source'Flow obj) GHC.Base.<> ((Data.Aeson..=) "funding" (paymentIntentLastPaymentError'Source'Funding obj) GHC.Base.<> ((Data.Aeson..=) "giropay" (paymentIntentLastPaymentError'Source'Giropay obj) GHC.Base.<> ((Data.Aeson..=) "id" (paymentIntentLastPaymentError'Source'Id obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (paymentIntentLastPaymentError'Source'Ideal obj) GHC.Base.<> ((Data.Aeson..=) "klarna" (paymentIntentLastPaymentError'Source'Klarna obj) GHC.Base.<> ((Data.Aeson..=) "last4" (paymentIntentLastPaymentError'Source'Last4 obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (paymentIntentLastPaymentError'Source'Livemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (paymentIntentLastPaymentError'Source'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "multibanco" (paymentIntentLastPaymentError'Source'Multibanco obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentIntentLastPaymentError'Source'Name obj) GHC.Base.<> ((Data.Aeson..=) "object" (paymentIntentLastPaymentError'Source'Object obj) GHC.Base.<> ((Data.Aeson..=) "owner" (paymentIntentLastPaymentError'Source'Owner obj) GHC.Base.<> ((Data.Aeson..=) "p24" (paymentIntentLastPaymentError'Source'P24 obj) GHC.Base.<> ((Data.Aeson..=) "receiver" (paymentIntentLastPaymentError'Source'Receiver obj) GHC.Base.<> ((Data.Aeson..=) "recipient" (paymentIntentLastPaymentError'Source'Recipient obj) GHC.Base.<> ((Data.Aeson..=) "redirect" (paymentIntentLastPaymentError'Source'Redirect obj) GHC.Base.<> ((Data.Aeson..=) "routing_number" (paymentIntentLastPaymentError'Source'RoutingNumber obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (paymentIntentLastPaymentError'Source'SepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "sofort" (paymentIntentLastPaymentError'Source'Sofort obj) GHC.Base.<> ((Data.Aeson..=) "source_order" (paymentIntentLastPaymentError'Source'SourceOrder obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (paymentIntentLastPaymentError'Source'StatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "status" (paymentIntentLastPaymentError'Source'Status obj) GHC.Base.<> ((Data.Aeson..=) "three_d_secure" (paymentIntentLastPaymentError'Source'ThreeDSecure obj) GHC.Base.<> ((Data.Aeson..=) "tokenization_method" (paymentIntentLastPaymentError'Source'TokenizationMethod obj) GHC.Base.<> ((Data.Aeson..=) "type" (paymentIntentLastPaymentError'Source'Type obj) GHC.Base.<> ((Data.Aeson..=) "usage" (paymentIntentLastPaymentError'Source'Usage obj) GHC.Base.<> (Data.Aeson..=) "wechat" (paymentIntentLastPaymentError'Source'Wechat obj))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentLastPaymentError'Source'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentLastPaymentError'Source'" (\obj -> (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((GHC.Base.pure PaymentIntentLastPaymentError'Source' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_payout_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_secret")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "code_verification")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "flow")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "owner")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receiver")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "recipient")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "redirect")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_order")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "three_d_secure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tokenization_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat"))
-- | Define the one-of schema payment_intentLast_payment_error\'Source\'Account\'
-- 
-- The ID of the account that the bank account is associated with.
data PaymentIntentLastPaymentError'Source'Account'Variants
    = PaymentIntentLastPaymentError'Source'Account'Account Account
    | PaymentIntentLastPaymentError'Source'Account'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'Account'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentIntentLastPaymentError'Source'Account'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema payment_intentLast_payment_error\'Source\'Available_payout_methods\'
-- 
-- 
data PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'
    = PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumTyped GHC.Base.String
    | PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumStringInstant
    | PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'
    where toJSON (PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumStringInstant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant"
          toJSON (PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant")
                                          then PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumStringInstant
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                then PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumStringStandard
                                                else PaymentIntentLastPaymentError'Source'AvailablePayoutMethods'EnumOther val)
-- | Define the one-of schema payment_intentLast_payment_error\'Source\'Customer\'
-- 
-- The ID of the customer that the bank account is associated with.
data PaymentIntentLastPaymentError'Source'Customer'Variants
    = PaymentIntentLastPaymentError'Source'Customer'Customer Customer
    | PaymentIntentLastPaymentError'Source'Customer'DeletedCustomer DeletedCustomer
    | PaymentIntentLastPaymentError'Source'Customer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'Customer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentIntentLastPaymentError'Source'Customer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema payment_intentLast_payment_error\'Source\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data PaymentIntentLastPaymentError'Source'Metadata' = PaymentIntentLastPaymentError'Source'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentLastPaymentError'Source'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentLastPaymentError'Source'Metadata'" (\obj -> GHC.Base.pure PaymentIntentLastPaymentError'Source'Metadata')
-- | Defines the enum schema payment_intentLast_payment_error\'Source\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data PaymentIntentLastPaymentError'Source'Object'
    = PaymentIntentLastPaymentError'Source'Object'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentLastPaymentError'Source'Object'EnumTyped GHC.Base.String
    | PaymentIntentLastPaymentError'Source'Object'EnumStringBankAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'Object'
    where toJSON (PaymentIntentLastPaymentError'Source'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentLastPaymentError'Source'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentLastPaymentError'Source'Object'EnumStringBankAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account"
instance Data.Aeson.FromJSON PaymentIntentLastPaymentError'Source'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account")
                                          then PaymentIntentLastPaymentError'Source'Object'EnumStringBankAccount
                                          else PaymentIntentLastPaymentError'Source'Object'EnumOther val)
-- | Defines the data type for the schema payment_intentLast_payment_error\'Source\'Owner\'
-- 
-- Information about the owner of the payment instrument that may be used or required by particular source types.
data PaymentIntentLastPaymentError'Source'Owner' = PaymentIntentLastPaymentError'Source'Owner' {
  -- | address: Owner\'s address.
  paymentIntentLastPaymentError'Source'Owner'Address :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Source'Owner'Address')
  -- | email: Owner\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'Email :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s full name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Owner\'s phone number (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_address: Verified owner\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , paymentIntentLastPaymentError'Source'Owner'VerifiedAddress :: (GHC.Maybe.Maybe PaymentIntentLastPaymentError'Source'Owner'VerifiedAddress')
  -- | verified_email: Verified owner\'s email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'VerifiedEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_name: Verified owner\'s full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'VerifiedName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_phone: Verified owner\'s phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'VerifiedPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'Owner'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (paymentIntentLastPaymentError'Source'Owner'Address obj) : (Data.Aeson..=) "email" (paymentIntentLastPaymentError'Source'Owner'Email obj) : (Data.Aeson..=) "name" (paymentIntentLastPaymentError'Source'Owner'Name obj) : (Data.Aeson..=) "phone" (paymentIntentLastPaymentError'Source'Owner'Phone obj) : (Data.Aeson..=) "verified_address" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress obj) : (Data.Aeson..=) "verified_email" (paymentIntentLastPaymentError'Source'Owner'VerifiedEmail obj) : (Data.Aeson..=) "verified_name" (paymentIntentLastPaymentError'Source'Owner'VerifiedName obj) : (Data.Aeson..=) "verified_phone" (paymentIntentLastPaymentError'Source'Owner'VerifiedPhone obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (paymentIntentLastPaymentError'Source'Owner'Address obj) GHC.Base.<> ((Data.Aeson..=) "email" (paymentIntentLastPaymentError'Source'Owner'Email obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentIntentLastPaymentError'Source'Owner'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (paymentIntentLastPaymentError'Source'Owner'Phone obj) GHC.Base.<> ((Data.Aeson..=) "verified_address" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress obj) GHC.Base.<> ((Data.Aeson..=) "verified_email" (paymentIntentLastPaymentError'Source'Owner'VerifiedEmail obj) GHC.Base.<> ((Data.Aeson..=) "verified_name" (paymentIntentLastPaymentError'Source'Owner'VerifiedName obj) GHC.Base.<> (Data.Aeson..=) "verified_phone" (paymentIntentLastPaymentError'Source'Owner'VerifiedPhone obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentLastPaymentError'Source'Owner'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentLastPaymentError'Source'Owner'" (\obj -> (((((((GHC.Base.pure PaymentIntentLastPaymentError'Source'Owner' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_phone"))
-- | Defines the data type for the schema payment_intentLast_payment_error\'Source\'Owner\'Address\'
-- 
-- Owner\\\'s address.
data PaymentIntentLastPaymentError'Source'Owner'Address' = PaymentIntentLastPaymentError'Source'Owner'Address' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentIntentLastPaymentError'Source'Owner'Address'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'Address'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'Address'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'Address'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'Address'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'Address'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'Owner'Address'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentIntentLastPaymentError'Source'Owner'Address'City obj) : (Data.Aeson..=) "country" (paymentIntentLastPaymentError'Source'Owner'Address'Country obj) : (Data.Aeson..=) "line1" (paymentIntentLastPaymentError'Source'Owner'Address'Line1 obj) : (Data.Aeson..=) "line2" (paymentIntentLastPaymentError'Source'Owner'Address'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentIntentLastPaymentError'Source'Owner'Address'PostalCode obj) : (Data.Aeson..=) "state" (paymentIntentLastPaymentError'Source'Owner'Address'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentIntentLastPaymentError'Source'Owner'Address'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentIntentLastPaymentError'Source'Owner'Address'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentIntentLastPaymentError'Source'Owner'Address'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentIntentLastPaymentError'Source'Owner'Address'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentIntentLastPaymentError'Source'Owner'Address'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentIntentLastPaymentError'Source'Owner'Address'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentLastPaymentError'Source'Owner'Address'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentLastPaymentError'Source'Owner'Address'" (\obj -> (((((GHC.Base.pure PaymentIntentLastPaymentError'Source'Owner'Address' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema payment_intentLast_payment_error\'Source\'Owner\'Verified_address\'
-- 
-- Verified owner\\\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentIntentLastPaymentError'Source'Owner'VerifiedAddress' = PaymentIntentLastPaymentError'Source'Owner'VerifiedAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'Owner'VerifiedAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'City obj) : (Data.Aeson..=) "country" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'Country obj) : (Data.Aeson..=) "line1" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentIntentLastPaymentError'Source'Owner'VerifiedAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentLastPaymentError'Source'Owner'VerifiedAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentLastPaymentError'Source'Owner'VerifiedAddress'" (\obj -> (((((GHC.Base.pure PaymentIntentLastPaymentError'Source'Owner'VerifiedAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Define the one-of schema payment_intentLast_payment_error\'Source\'Recipient\'
-- 
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data PaymentIntentLastPaymentError'Source'Recipient'Variants
    = PaymentIntentLastPaymentError'Source'Recipient'Recipient Recipient
    | PaymentIntentLastPaymentError'Source'Recipient'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'Recipient'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentIntentLastPaymentError'Source'Recipient'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema payment_intentLast_payment_error\'Source\'Type\'
-- 
-- The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
data PaymentIntentLastPaymentError'Source'Type'
    = PaymentIntentLastPaymentError'Source'Type'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentLastPaymentError'Source'Type'EnumTyped GHC.Base.String
    | PaymentIntentLastPaymentError'Source'Type'EnumStringAchCreditTransfer
    | PaymentIntentLastPaymentError'Source'Type'EnumStringAchDebit
    | PaymentIntentLastPaymentError'Source'Type'EnumStringAlipay
    | PaymentIntentLastPaymentError'Source'Type'EnumStringBancontact
    | PaymentIntentLastPaymentError'Source'Type'EnumStringCard
    | PaymentIntentLastPaymentError'Source'Type'EnumStringCardPresent
    | PaymentIntentLastPaymentError'Source'Type'EnumStringEps
    | PaymentIntentLastPaymentError'Source'Type'EnumStringGiropay
    | PaymentIntentLastPaymentError'Source'Type'EnumStringIdeal
    | PaymentIntentLastPaymentError'Source'Type'EnumStringKlarna
    | PaymentIntentLastPaymentError'Source'Type'EnumStringMultibanco
    | PaymentIntentLastPaymentError'Source'Type'EnumStringP24
    | PaymentIntentLastPaymentError'Source'Type'EnumStringSepaDebit
    | PaymentIntentLastPaymentError'Source'Type'EnumStringSofort
    | PaymentIntentLastPaymentError'Source'Type'EnumStringThreeDSecure
    | PaymentIntentLastPaymentError'Source'Type'EnumStringWechat
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Source'Type'
    where toJSON (PaymentIntentLastPaymentError'Source'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringAchCreditTransfer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_credit_transfer"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringAchDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_debit"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringAlipay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringBancontact) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bancontact"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringCard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringCardPresent) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_present"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringEps) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eps"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringGiropay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "giropay"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringIdeal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringKlarna) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "klarna"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringMultibanco) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multibanco"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringP24) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "p24"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringSepaDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringSofort) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sofort"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringThreeDSecure) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure"
          toJSON (PaymentIntentLastPaymentError'Source'Type'EnumStringWechat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wechat"
instance Data.Aeson.FromJSON PaymentIntentLastPaymentError'Source'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_credit_transfer")
                                          then PaymentIntentLastPaymentError'Source'Type'EnumStringAchCreditTransfer
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_debit")
                                                then PaymentIntentLastPaymentError'Source'Type'EnumStringAchDebit
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay")
                                                      then PaymentIntentLastPaymentError'Source'Type'EnumStringAlipay
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bancontact")
                                                            then PaymentIntentLastPaymentError'Source'Type'EnumStringBancontact
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card")
                                                                  then PaymentIntentLastPaymentError'Source'Type'EnumStringCard
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_present")
                                                                        then PaymentIntentLastPaymentError'Source'Type'EnumStringCardPresent
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eps")
                                                                              then PaymentIntentLastPaymentError'Source'Type'EnumStringEps
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "giropay")
                                                                                    then PaymentIntentLastPaymentError'Source'Type'EnumStringGiropay
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal")
                                                                                          then PaymentIntentLastPaymentError'Source'Type'EnumStringIdeal
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "klarna")
                                                                                                then PaymentIntentLastPaymentError'Source'Type'EnumStringKlarna
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multibanco")
                                                                                                      then PaymentIntentLastPaymentError'Source'Type'EnumStringMultibanco
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "p24")
                                                                                                            then PaymentIntentLastPaymentError'Source'Type'EnumStringP24
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit")
                                                                                                                  then PaymentIntentLastPaymentError'Source'Type'EnumStringSepaDebit
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sofort")
                                                                                                                        then PaymentIntentLastPaymentError'Source'Type'EnumStringSofort
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure")
                                                                                                                              then PaymentIntentLastPaymentError'Source'Type'EnumStringThreeDSecure
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wechat")
                                                                                                                                    then PaymentIntentLastPaymentError'Source'Type'EnumStringWechat
                                                                                                                                    else PaymentIntentLastPaymentError'Source'Type'EnumOther val)
-- | Defines the enum schema payment_intentLast_payment_error\'Type\'
-- 
-- The type of error returned. One of \`api_connection_error\`, \`api_error\`, \`authentication_error\`, \`card_error\`, \`idempotency_error\`, \`invalid_request_error\`, or \`rate_limit_error\`
data PaymentIntentLastPaymentError'Type'
    = PaymentIntentLastPaymentError'Type'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentLastPaymentError'Type'EnumTyped GHC.Base.String
    | PaymentIntentLastPaymentError'Type'EnumStringApiConnectionError
    | PaymentIntentLastPaymentError'Type'EnumStringApiError
    | PaymentIntentLastPaymentError'Type'EnumStringAuthenticationError
    | PaymentIntentLastPaymentError'Type'EnumStringCardError
    | PaymentIntentLastPaymentError'Type'EnumStringIdempotencyError
    | PaymentIntentLastPaymentError'Type'EnumStringInvalidRequestError
    | PaymentIntentLastPaymentError'Type'EnumStringRateLimitError
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentLastPaymentError'Type'
    where toJSON (PaymentIntentLastPaymentError'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentLastPaymentError'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentLastPaymentError'Type'EnumStringApiConnectionError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_connection_error"
          toJSON (PaymentIntentLastPaymentError'Type'EnumStringApiError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_error"
          toJSON (PaymentIntentLastPaymentError'Type'EnumStringAuthenticationError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "authentication_error"
          toJSON (PaymentIntentLastPaymentError'Type'EnumStringCardError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_error"
          toJSON (PaymentIntentLastPaymentError'Type'EnumStringIdempotencyError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "idempotency_error"
          toJSON (PaymentIntentLastPaymentError'Type'EnumStringInvalidRequestError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invalid_request_error"
          toJSON (PaymentIntentLastPaymentError'Type'EnumStringRateLimitError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "rate_limit_error"
instance Data.Aeson.FromJSON PaymentIntentLastPaymentError'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_connection_error")
                                          then PaymentIntentLastPaymentError'Type'EnumStringApiConnectionError
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_error")
                                                then PaymentIntentLastPaymentError'Type'EnumStringApiError
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "authentication_error")
                                                      then PaymentIntentLastPaymentError'Type'EnumStringAuthenticationError
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_error")
                                                            then PaymentIntentLastPaymentError'Type'EnumStringCardError
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "idempotency_error")
                                                                  then PaymentIntentLastPaymentError'Type'EnumStringIdempotencyError
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invalid_request_error")
                                                                        then PaymentIntentLastPaymentError'Type'EnumStringInvalidRequestError
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "rate_limit_error")
                                                                              then PaymentIntentLastPaymentError'Type'EnumStringRateLimitError
                                                                              else PaymentIntentLastPaymentError'Type'EnumOther val)
-- | Defines the data type for the schema payment_intentMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. For more information, see the [documentation](https:\/\/stripe.com\/docs\/payments\/payment-intents\/creating-payment-intents\#storing-information-in-metadata).
data PaymentIntentMetadata' = PaymentIntentMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentMetadata'" (\obj -> GHC.Base.pure PaymentIntentMetadata')
-- | Defines the data type for the schema payment_intentNext_action\'
-- 
-- If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source.
data PaymentIntentNextAction' = PaymentIntentNextAction' {
  -- | redirect_to_url: 
  paymentIntentNextAction'RedirectToUrl :: (GHC.Maybe.Maybe PaymentIntentNextActionRedirectToUrl)
  -- | type: Type of the next action to perform, one of \`redirect_to_url\` or \`use_stripe_sdk\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentNextAction'Type :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | use_stripe_sdk: When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.
  , paymentIntentNextAction'UseStripeSdk :: (GHC.Maybe.Maybe PaymentIntentNextAction'UseStripeSdk')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentNextAction'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "redirect_to_url" (paymentIntentNextAction'RedirectToUrl obj) : (Data.Aeson..=) "type" (paymentIntentNextAction'Type obj) : (Data.Aeson..=) "use_stripe_sdk" (paymentIntentNextAction'UseStripeSdk obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "redirect_to_url" (paymentIntentNextAction'RedirectToUrl obj) GHC.Base.<> ((Data.Aeson..=) "type" (paymentIntentNextAction'Type obj) GHC.Base.<> (Data.Aeson..=) "use_stripe_sdk" (paymentIntentNextAction'UseStripeSdk obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentNextAction'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentNextAction'" (\obj -> ((GHC.Base.pure PaymentIntentNextAction' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "redirect_to_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "use_stripe_sdk"))
-- | Defines the data type for the schema payment_intentNext_action\'Use_stripe_sdk\'
-- 
-- When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.
data PaymentIntentNextAction'UseStripeSdk' = PaymentIntentNextAction'UseStripeSdk' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentNextAction'UseStripeSdk'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentNextAction'UseStripeSdk'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentNextAction'UseStripeSdk'" (\obj -> GHC.Base.pure PaymentIntentNextAction'UseStripeSdk')
-- | Defines the enum schema payment_intentObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data PaymentIntentObject'
    = PaymentIntentObject'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentObject'EnumTyped GHC.Base.String
    | PaymentIntentObject'EnumStringPaymentIntent
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentObject'
    where toJSON (PaymentIntentObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentObject'EnumStringPaymentIntent) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment_intent"
instance Data.Aeson.FromJSON PaymentIntentObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment_intent")
                                          then PaymentIntentObject'EnumStringPaymentIntent
                                          else PaymentIntentObject'EnumOther val)
-- | Define the one-of schema payment_intentOn_behalf_of\'
-- 
-- The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents [use case for connected accounts](https:\/\/stripe.com\/docs\/payments\/connected-accounts) for details.
data PaymentIntentOnBehalfOf'Variants
    = PaymentIntentOnBehalfOf'Account Account
    | PaymentIntentOnBehalfOf'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentIntentOnBehalfOf'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentIntentOnBehalfOf'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema payment_intentPayment_method\'
-- 
-- ID of the payment method used in this PaymentIntent.
data PaymentIntentPaymentMethod'Variants
    = PaymentIntentPaymentMethod'PaymentMethod PaymentMethod
    | PaymentIntentPaymentMethod'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentIntentPaymentMethod'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentIntentPaymentMethod'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema payment_intentPayment_method_options\'
-- 
-- Payment-method-specific configuration for this PaymentIntent.
data PaymentIntentPaymentMethodOptions' = PaymentIntentPaymentMethodOptions' {
  -- | card: 
  paymentIntentPaymentMethodOptions'Card :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptionsCard)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentPaymentMethodOptions'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "card" (paymentIntentPaymentMethodOptions'Card obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "card" (paymentIntentPaymentMethodOptions'Card obj))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentPaymentMethodOptions'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentPaymentMethodOptions'" (\obj -> GHC.Base.pure PaymentIntentPaymentMethodOptions' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card"))
-- | Define the one-of schema payment_intentReview\'
-- 
-- ID of the review associated with this PaymentIntent, if any.
data PaymentIntentReview'Variants
    = PaymentIntentReview'Review Review
    | PaymentIntentReview'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentIntentReview'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentIntentReview'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema payment_intentSetup_future_usage\'
-- 
-- Indicates that you intend to make future payments with this PaymentIntent\'s payment method.
-- 
-- If present, the payment method used with this PaymentIntent can be [attached](https:\/\/stripe.com\/docs\/api\/payment_methods\/attach) to a Customer, even after the transaction completes.
-- 
-- For more, learn to [save card details during payment](https:\/\/stripe.com\/docs\/payments\/save-during-payment).
-- 
-- Stripe uses \`setup_future_usage\` to dynamically optimize your payment flow and comply with regional legislation and network rules. For example, if your customer is impacted by [SCA](https:\/\/stripe.com\/docs\/strong-customer-authentication), using \`off_session\` will ensure that they are authenticated while processing this PaymentIntent. You will then be able to collect [off-session payments](https:\/\/stripe.com\/docs\/payments\/cards\/charging-saved-cards\#off-session-payments-with-saved-cards) for this customer.
data PaymentIntentSetupFutureUsage'
    = PaymentIntentSetupFutureUsage'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentSetupFutureUsage'EnumTyped GHC.Base.String
    | PaymentIntentSetupFutureUsage'EnumStringOffSession
    | PaymentIntentSetupFutureUsage'EnumStringOnSession
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentSetupFutureUsage'
    where toJSON (PaymentIntentSetupFutureUsage'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentSetupFutureUsage'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentSetupFutureUsage'EnumStringOffSession) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "off_session"
          toJSON (PaymentIntentSetupFutureUsage'EnumStringOnSession) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "on_session"
instance Data.Aeson.FromJSON PaymentIntentSetupFutureUsage'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "off_session")
                                          then PaymentIntentSetupFutureUsage'EnumStringOffSession
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "on_session")
                                                then PaymentIntentSetupFutureUsage'EnumStringOnSession
                                                else PaymentIntentSetupFutureUsage'EnumOther val)
-- | Defines the data type for the schema payment_intentShipping\'
-- 
-- Shipping information for this PaymentIntent.
data PaymentIntentShipping' = PaymentIntentShipping' {
  -- | address: 
  paymentIntentShipping'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
  , paymentIntentShipping'Carrier :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Recipient name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentShipping'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Recipient phone (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentIntentShipping'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | 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
  , paymentIntentShipping'TrackingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentShipping'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (paymentIntentShipping'Address obj) : (Data.Aeson..=) "carrier" (paymentIntentShipping'Carrier obj) : (Data.Aeson..=) "name" (paymentIntentShipping'Name obj) : (Data.Aeson..=) "phone" (paymentIntentShipping'Phone obj) : (Data.Aeson..=) "tracking_number" (paymentIntentShipping'TrackingNumber obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (paymentIntentShipping'Address obj) GHC.Base.<> ((Data.Aeson..=) "carrier" (paymentIntentShipping'Carrier obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentIntentShipping'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (paymentIntentShipping'Phone obj) GHC.Base.<> (Data.Aeson..=) "tracking_number" (paymentIntentShipping'TrackingNumber obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentShipping'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentShipping'" (\obj -> ((((GHC.Base.pure PaymentIntentShipping' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "carrier")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tracking_number"))
-- | Defines the enum schema payment_intentStatus\'
-- 
-- Status of this PaymentIntent, one of \`requires_payment_method\`, \`requires_confirmation\`, \`requires_action\`, \`processing\`, \`requires_capture\`, \`canceled\`, or \`succeeded\`. Read more about each PaymentIntent [status](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses).
data PaymentIntentStatus'
    = PaymentIntentStatus'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentStatus'EnumTyped GHC.Base.String
    | PaymentIntentStatus'EnumStringCanceled
    | PaymentIntentStatus'EnumStringProcessing
    | PaymentIntentStatus'EnumStringRequiresAction
    | PaymentIntentStatus'EnumStringRequiresCapture
    | PaymentIntentStatus'EnumStringRequiresConfirmation
    | PaymentIntentStatus'EnumStringRequiresPaymentMethod
    | PaymentIntentStatus'EnumStringSucceeded
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentStatus'
    where toJSON (PaymentIntentStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentStatus'EnumStringCanceled) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled"
          toJSON (PaymentIntentStatus'EnumStringProcessing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "processing"
          toJSON (PaymentIntentStatus'EnumStringRequiresAction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_action"
          toJSON (PaymentIntentStatus'EnumStringRequiresCapture) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_capture"
          toJSON (PaymentIntentStatus'EnumStringRequiresConfirmation) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_confirmation"
          toJSON (PaymentIntentStatus'EnumStringRequiresPaymentMethod) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_payment_method"
          toJSON (PaymentIntentStatus'EnumStringSucceeded) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "succeeded"
instance Data.Aeson.FromJSON PaymentIntentStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled")
                                          then PaymentIntentStatus'EnumStringCanceled
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "processing")
                                                then PaymentIntentStatus'EnumStringProcessing
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_action")
                                                      then PaymentIntentStatus'EnumStringRequiresAction
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_capture")
                                                            then PaymentIntentStatus'EnumStringRequiresCapture
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_confirmation")
                                                                  then PaymentIntentStatus'EnumStringRequiresConfirmation
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_payment_method")
                                                                        then PaymentIntentStatus'EnumStringRequiresPaymentMethod
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "succeeded")
                                                                              then PaymentIntentStatus'EnumStringSucceeded
                                                                              else PaymentIntentStatus'EnumOther val)
-- | Defines the data type for the schema payment_intentTransfer_data\'
-- 
-- The data with which to automatically create a Transfer when the payment is finalized. See the PaymentIntents [use case for connected accounts](https:\\\/\\\/stripe.com\\\/docs\\\/payments\\\/connected-accounts) for details.
data PaymentIntentTransferData' = PaymentIntentTransferData' {
  -- | amount: Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https:\/\/stripe.com\/docs\/currencies\#zero-decimal) (e.g., 100 cents to charge \$1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is \$0.50 US or [equivalent in charge currency](https:\/\/stripe.com\/docs\/currencies\#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of \$999,999.99).
  paymentIntentTransferData'Amount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | destination: The account (if any) the payment will be attributed to for tax
  -- reporting, and where funds from the payment will be transferred to upon
  -- payment success.
  , paymentIntentTransferData'Destination :: (GHC.Maybe.Maybe PaymentIntentTransferData'Destination'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentTransferData'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (paymentIntentTransferData'Amount obj) : (Data.Aeson..=) "destination" (paymentIntentTransferData'Destination obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (paymentIntentTransferData'Amount obj) GHC.Base.<> (Data.Aeson..=) "destination" (paymentIntentTransferData'Destination obj))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentTransferData'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentTransferData'" (\obj -> (GHC.Base.pure PaymentIntentTransferData' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "destination"))
-- | Define the one-of schema payment_intentTransfer_data\'Destination\'
-- 
-- The account (if any) the payment will be attributed to for tax
-- reporting, and where funds from the payment will be transferred to upon
-- payment success.
data PaymentIntentTransferData'Destination'Variants
    = PaymentIntentTransferData'Destination'Account Account
    | PaymentIntentTransferData'Destination'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentIntentTransferData'Destination'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentIntentTransferData'Destination'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema payment_intent_payment_method_options
-- 
-- 
data PaymentIntentPaymentMethodOptions = PaymentIntentPaymentMethodOptions {
  -- | card: 
  paymentIntentPaymentMethodOptionsCard :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptionsCard)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentPaymentMethodOptions
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "card" (paymentIntentPaymentMethodOptionsCard obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "card" (paymentIntentPaymentMethodOptionsCard obj))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentPaymentMethodOptions
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentPaymentMethodOptions" (\obj -> GHC.Base.pure PaymentIntentPaymentMethodOptions GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card"))
-- | Defines the data type for the schema payment_intent_payment_method_options_card
-- 
-- 
data PaymentIntentPaymentMethodOptionsCard = PaymentIntentPaymentMethodOptionsCard {
  -- | installments: Installment details for this payment (Mexico only).
  -- 
  -- For more information, see the [installments integration guide](https:\/\/stripe.com\/docs\/payments\/installments).
  paymentIntentPaymentMethodOptionsCardInstallments :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptionsCardInstallments')
  -- | request_three_d_secure: We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https:\/\/stripe.com\/docs\/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Permitted values include: \`automatic\` or \`any\`. If not provided, defaults to \`automatic\`. Read our guide on [manually requesting 3D Secure](https:\/\/stripe.com\/docs\/payments\/3d-secure\#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
  , paymentIntentPaymentMethodOptionsCardRequestThreeDSecure :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentPaymentMethodOptionsCard
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "installments" (paymentIntentPaymentMethodOptionsCardInstallments obj) : (Data.Aeson..=) "request_three_d_secure" (paymentIntentPaymentMethodOptionsCardRequestThreeDSecure obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "installments" (paymentIntentPaymentMethodOptionsCardInstallments obj) GHC.Base.<> (Data.Aeson..=) "request_three_d_secure" (paymentIntentPaymentMethodOptionsCardRequestThreeDSecure obj))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentPaymentMethodOptionsCard
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentPaymentMethodOptionsCard" (\obj -> (GHC.Base.pure PaymentIntentPaymentMethodOptionsCard GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "installments")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "request_three_d_secure"))
-- | Defines the data type for the schema payment_intent_payment_method_options_cardInstallments\'
-- 
-- Installment details for this payment (Mexico only).
-- 
-- For more information, see the [installments integration guide](https:\\\/\\\/stripe.com\\\/docs\\\/payments\\\/installments).
data PaymentIntentPaymentMethodOptionsCardInstallments' = PaymentIntentPaymentMethodOptionsCardInstallments' {
  -- | available_plans: Installment plans that may be selected for this PaymentIntent.
  paymentIntentPaymentMethodOptionsCardInstallments'AvailablePlans :: (GHC.Maybe.Maybe ([] PaymentMethodDetailsCardInstallmentsPlan))
  -- | enabled: Whether Installments are enabled for this PaymentIntent.
  , paymentIntentPaymentMethodOptionsCardInstallments'Enabled :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | plan: Installment plan selected for this PaymentIntent.
  , paymentIntentPaymentMethodOptionsCardInstallments'Plan :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptionsCardInstallments'Plan')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentPaymentMethodOptionsCardInstallments'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "available_plans" (paymentIntentPaymentMethodOptionsCardInstallments'AvailablePlans obj) : (Data.Aeson..=) "enabled" (paymentIntentPaymentMethodOptionsCardInstallments'Enabled obj) : (Data.Aeson..=) "plan" (paymentIntentPaymentMethodOptionsCardInstallments'Plan obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "available_plans" (paymentIntentPaymentMethodOptionsCardInstallments'AvailablePlans obj) GHC.Base.<> ((Data.Aeson..=) "enabled" (paymentIntentPaymentMethodOptionsCardInstallments'Enabled obj) GHC.Base.<> (Data.Aeson..=) "plan" (paymentIntentPaymentMethodOptionsCardInstallments'Plan obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentPaymentMethodOptionsCardInstallments'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentPaymentMethodOptionsCardInstallments'" (\obj -> ((GHC.Base.pure PaymentIntentPaymentMethodOptionsCardInstallments' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_plans")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "enabled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "plan"))
-- | Defines the data type for the schema payment_intent_payment_method_options_cardInstallments\'Plan\'
-- 
-- Installment plan selected for this PaymentIntent.
data PaymentIntentPaymentMethodOptionsCardInstallments'Plan' = PaymentIntentPaymentMethodOptionsCardInstallments'Plan' {
  -- | count: For \`fixed_count\` installment plans, this is the number of installment payments your customer will make to their credit card.
  paymentIntentPaymentMethodOptionsCardInstallments'Plan'Count :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | interval: For \`fixed_count\` installment plans, this is the interval between installment payments your customer will make to their credit card.
  -- One of \`month\`.
  , paymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval')
  -- | type: Type of installment plan, one of \`fixed_count\`.
  , paymentIntentPaymentMethodOptionsCardInstallments'Plan'Type :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentPaymentMethodOptionsCardInstallments'Plan'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "count" (paymentIntentPaymentMethodOptionsCardInstallments'Plan'Count obj) : (Data.Aeson..=) "interval" (paymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval obj) : (Data.Aeson..=) "type" (paymentIntentPaymentMethodOptionsCardInstallments'Plan'Type obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "count" (paymentIntentPaymentMethodOptionsCardInstallments'Plan'Count obj) GHC.Base.<> ((Data.Aeson..=) "interval" (paymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval obj) GHC.Base.<> (Data.Aeson..=) "type" (paymentIntentPaymentMethodOptionsCardInstallments'Plan'Type obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentIntentPaymentMethodOptionsCardInstallments'Plan'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentIntentPaymentMethodOptionsCardInstallments'Plan'" (\obj -> ((GHC.Base.pure PaymentIntentPaymentMethodOptionsCardInstallments'Plan' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "count")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the enum schema payment_intent_payment_method_options_cardInstallments\'Plan\'Interval\'
-- 
-- For \`fixed_count\` installment plans, this is the interval between installment payments your customer will make to their credit card.
-- One of \`month\`.
data PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'
    = PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'EnumTyped GHC.Base.String
    | PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'EnumStringMonth
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'
    where toJSON (PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'EnumStringMonth) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month"
instance Data.Aeson.FromJSON PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month")
                                          then PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'EnumStringMonth
                                          else PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Interval'EnumOther val)
-- | Defines the enum schema payment_intent_payment_method_options_cardInstallments\'Plan\'Type\'
-- 
-- Type of installment plan, one of \`fixed_count\`.
data PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'
    = PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'EnumTyped GHC.Base.String
    | PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'EnumStringFixedCount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'
    where toJSON (PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'EnumStringFixedCount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fixed_count"
instance Data.Aeson.FromJSON PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fixed_count")
                                          then PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'EnumStringFixedCount
                                          else PaymentIntentPaymentMethodOptionsCardInstallments'Plan'Type'EnumOther val)
-- | Defines the enum schema payment_intent_payment_method_options_cardRequest_three_d_secure\'
-- 
-- We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https:\/\/stripe.com\/docs\/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Permitted values include: \`automatic\` or \`any\`. If not provided, defaults to \`automatic\`. Read our guide on [manually requesting 3D Secure](https:\/\/stripe.com\/docs\/payments\/3d-secure\#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
data PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'
    = PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumTyped GHC.Base.String
    | PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumStringAny
    | PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumStringAutomatic
    | PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumStringChallengeOnly
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'
    where toJSON (PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumStringAny) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "any"
          toJSON (PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumStringAutomatic) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automatic"
          toJSON (PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumStringChallengeOnly) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "challenge_only"
instance Data.Aeson.FromJSON PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "any")
                                          then PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumStringAny
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "automatic")
                                                then PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumStringAutomatic
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "challenge_only")
                                                      then PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumStringChallengeOnly
                                                      else PaymentIntentPaymentMethodOptionsCardRequestThreeDSecure'EnumOther val)
-- | Defines the data type for the schema payment_method
-- 
-- PaymentMethod objects represent your customer\'s payment instruments.
-- They can be used with [PaymentIntents](https:\/\/stripe.com\/docs\/payments\/payment-intents) to collect payments or saved to
-- Customer objects to store instrument details for future payments.
-- 
-- Related guides: [Payment Methods](https:\/\/stripe.com\/docs\/payments\/payment-methods) and [More Payment Scenarios](https:\/\/stripe.com\/docs\/payments\/more-payment-scenarios).
data PaymentMethod = PaymentMethod {
  -- | billing_details: 
  paymentMethodBillingDetails :: BillingDetails
  -- | card: 
  , paymentMethodCard :: (GHC.Maybe.Maybe PaymentMethodCard)
  -- | card_present: 
  , paymentMethodCardPresent :: (GHC.Maybe.Maybe PaymentMethodCardPresent)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , paymentMethodCreated :: GHC.Integer.Type.Integer
  -- | customer: The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.
  , paymentMethodCustomer :: (GHC.Maybe.Maybe PaymentMethodCustomer'Variants)
  -- | fpx: 
  , paymentMethodFpx :: (GHC.Maybe.Maybe PaymentMethodFpx)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodId :: GHC.Base.String
  -- | ideal: 
  , paymentMethodIdeal :: (GHC.Maybe.Maybe PaymentMethodIdeal)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , paymentMethodLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , paymentMethodMetadata :: PaymentMethodMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , paymentMethodObject :: PaymentMethodObject'
  -- | sepa_debit: 
  , paymentMethodSepaDebit :: (GHC.Maybe.Maybe PaymentMethodSepaDebit)
  -- | type: The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
  , paymentMethodType :: PaymentMethodType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethod
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_details" (paymentMethodBillingDetails obj) : (Data.Aeson..=) "card" (paymentMethodCard obj) : (Data.Aeson..=) "card_present" (paymentMethodCardPresent obj) : (Data.Aeson..=) "created" (paymentMethodCreated obj) : (Data.Aeson..=) "customer" (paymentMethodCustomer obj) : (Data.Aeson..=) "fpx" (paymentMethodFpx obj) : (Data.Aeson..=) "id" (paymentMethodId obj) : (Data.Aeson..=) "ideal" (paymentMethodIdeal obj) : (Data.Aeson..=) "livemode" (paymentMethodLivemode obj) : (Data.Aeson..=) "metadata" (paymentMethodMetadata obj) : (Data.Aeson..=) "object" (paymentMethodObject obj) : (Data.Aeson..=) "sepa_debit" (paymentMethodSepaDebit obj) : (Data.Aeson..=) "type" (paymentMethodType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_details" (paymentMethodBillingDetails obj) GHC.Base.<> ((Data.Aeson..=) "card" (paymentMethodCard obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (paymentMethodCardPresent obj) GHC.Base.<> ((Data.Aeson..=) "created" (paymentMethodCreated obj) GHC.Base.<> ((Data.Aeson..=) "customer" (paymentMethodCustomer obj) GHC.Base.<> ((Data.Aeson..=) "fpx" (paymentMethodFpx obj) GHC.Base.<> ((Data.Aeson..=) "id" (paymentMethodId obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (paymentMethodIdeal obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (paymentMethodLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (paymentMethodMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (paymentMethodObject obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (paymentMethodSepaDebit obj) GHC.Base.<> (Data.Aeson..=) "type" (paymentMethodType obj)))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethod
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethod" (\obj -> ((((((((((((GHC.Base.pure PaymentMethod GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "billing_details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fpx")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Define the one-of schema payment_methodCustomer\'
-- 
-- The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.
data PaymentMethodCustomer'Variants
    = PaymentMethodCustomer'Customer Customer
    | PaymentMethodCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentMethodCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentMethodCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema payment_methodMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data PaymentMethodMetadata' = PaymentMethodMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodMetadata'" (\obj -> GHC.Base.pure PaymentMethodMetadata')
-- | Defines the enum schema payment_methodObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data PaymentMethodObject'
    = PaymentMethodObject'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodObject'EnumTyped GHC.Base.String
    | PaymentMethodObject'EnumStringPaymentMethod
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodObject'
    where toJSON (PaymentMethodObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodObject'EnumStringPaymentMethod) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment_method"
instance Data.Aeson.FromJSON PaymentMethodObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payment_method")
                                          then PaymentMethodObject'EnumStringPaymentMethod
                                          else PaymentMethodObject'EnumOther val)
-- | Defines the enum schema payment_methodType\'
-- 
-- The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
data PaymentMethodType'
    = PaymentMethodType'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodType'EnumTyped GHC.Base.String
    | PaymentMethodType'EnumStringCard
    | PaymentMethodType'EnumStringFpx
    | PaymentMethodType'EnumStringIdeal
    | PaymentMethodType'EnumStringSepaDebit
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodType'
    where toJSON (PaymentMethodType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodType'EnumStringCard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card"
          toJSON (PaymentMethodType'EnumStringFpx) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fpx"
          toJSON (PaymentMethodType'EnumStringIdeal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal"
          toJSON (PaymentMethodType'EnumStringSepaDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit"
instance Data.Aeson.FromJSON PaymentMethodType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card")
                                          then PaymentMethodType'EnumStringCard
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fpx")
                                                then PaymentMethodType'EnumStringFpx
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal")
                                                      then PaymentMethodType'EnumStringIdeal
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit")
                                                            then PaymentMethodType'EnumStringSepaDebit
                                                            else PaymentMethodType'EnumOther val)
-- | Defines the data type for the schema payment_method_card
-- 
-- 
data PaymentMethodCard = PaymentMethodCard {
  -- | brand: Card brand. Can be \`amex\`, \`diners\`, \`discover\`, \`jcb\`, \`mastercard\`, \`unionpay\`, \`visa\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodCardBrand :: GHC.Base.String
  -- | checks: Checks on Card address and CVC if provided.
  , paymentMethodCardChecks :: (GHC.Maybe.Maybe PaymentMethodCardChecks')
  -- | country: Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you\'ve collected.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , paymentMethodCardExpMonth :: GHC.Integer.Type.Integer
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , paymentMethodCardExpYear :: GHC.Integer.Type.Integer
  -- | fingerprint: Uniquely identifies this particular card number. You can use this attribute to check whether two customers who\'ve signed up with you are using the same card number, for example.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardFingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardFunding :: GHC.Base.String
  -- | generated_from: Details of the original PaymentMethod that created this object.
  , paymentMethodCardGeneratedFrom :: (GHC.Maybe.Maybe PaymentMethodCardGeneratedFrom')
  -- | last4: The last four digits of the card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardLast4 :: GHC.Base.String
  -- | three_d_secure_usage: Contains details on how this Card maybe be used for 3D Secure authentication.
  , paymentMethodCardThreeDSecureUsage :: (GHC.Maybe.Maybe PaymentMethodCardThreeDSecureUsage')
  -- | wallet: If this Card is part of a card wallet, this contains the details of the card wallet.
  , paymentMethodCardWallet :: (GHC.Maybe.Maybe PaymentMethodCardWallet')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCard
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "brand" (paymentMethodCardBrand obj) : (Data.Aeson..=) "checks" (paymentMethodCardChecks obj) : (Data.Aeson..=) "country" (paymentMethodCardCountry obj) : (Data.Aeson..=) "exp_month" (paymentMethodCardExpMonth obj) : (Data.Aeson..=) "exp_year" (paymentMethodCardExpYear obj) : (Data.Aeson..=) "fingerprint" (paymentMethodCardFingerprint obj) : (Data.Aeson..=) "funding" (paymentMethodCardFunding obj) : (Data.Aeson..=) "generated_from" (paymentMethodCardGeneratedFrom obj) : (Data.Aeson..=) "last4" (paymentMethodCardLast4 obj) : (Data.Aeson..=) "three_d_secure_usage" (paymentMethodCardThreeDSecureUsage obj) : (Data.Aeson..=) "wallet" (paymentMethodCardWallet obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "brand" (paymentMethodCardBrand obj) GHC.Base.<> ((Data.Aeson..=) "checks" (paymentMethodCardChecks obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodCardCountry obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (paymentMethodCardExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (paymentMethodCardExpYear obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (paymentMethodCardFingerprint obj) GHC.Base.<> ((Data.Aeson..=) "funding" (paymentMethodCardFunding obj) GHC.Base.<> ((Data.Aeson..=) "generated_from" (paymentMethodCardGeneratedFrom obj) GHC.Base.<> ((Data.Aeson..=) "last4" (paymentMethodCardLast4 obj) GHC.Base.<> ((Data.Aeson..=) "three_d_secure_usage" (paymentMethodCardThreeDSecureUsage obj) GHC.Base.<> (Data.Aeson..=) "wallet" (paymentMethodCardWallet obj)))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCard
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCard" (\obj -> ((((((((((GHC.Base.pure PaymentMethodCard GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "checks")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "generated_from")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "three_d_secure_usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wallet"))
-- | Defines the data type for the schema payment_method_cardChecks\'
-- 
-- Checks on Card address and CVC if provided.
data PaymentMethodCardChecks' = PaymentMethodCardChecks' {
  -- | address_line1_check: If a address line1 was provided, results of the check, one of \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodCardChecks'AddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_postal_code_check: If a address postal code was provided, results of the check, one of \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardChecks'AddressPostalCodeCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | cvc_check: If a CVC was provided, results of the check, one of \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardChecks'CvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardChecks'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address_line1_check" (paymentMethodCardChecks'AddressLine1Check obj) : (Data.Aeson..=) "address_postal_code_check" (paymentMethodCardChecks'AddressPostalCodeCheck obj) : (Data.Aeson..=) "cvc_check" (paymentMethodCardChecks'CvcCheck obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address_line1_check" (paymentMethodCardChecks'AddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_postal_code_check" (paymentMethodCardChecks'AddressPostalCodeCheck obj) GHC.Base.<> (Data.Aeson..=) "cvc_check" (paymentMethodCardChecks'CvcCheck obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardChecks'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardChecks'" (\obj -> ((GHC.Base.pure PaymentMethodCardChecks' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_postal_code_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check"))
-- | Defines the data type for the schema payment_method_cardGenerated_from\'
-- 
-- Details of the original PaymentMethod that created this object.
data PaymentMethodCardGeneratedFrom' = PaymentMethodCardGeneratedFrom' {
  -- | charge: The charge that created this object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodCardGeneratedFrom'Charge :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | payment_method_details: Transaction-specific details of the payment method used in the payment.
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails :: (GHC.Maybe.Maybe PaymentMethodCardGeneratedFrom'PaymentMethodDetails')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardGeneratedFrom'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "charge" (paymentMethodCardGeneratedFrom'Charge obj) : (Data.Aeson..=) "payment_method_details" (paymentMethodCardGeneratedFrom'PaymentMethodDetails obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "charge" (paymentMethodCardGeneratedFrom'Charge obj) GHC.Base.<> (Data.Aeson..=) "payment_method_details" (paymentMethodCardGeneratedFrom'PaymentMethodDetails obj))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardGeneratedFrom'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardGeneratedFrom'" (\obj -> (GHC.Base.pure PaymentMethodCardGeneratedFrom' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method_details"))
-- | Defines the data type for the schema payment_method_cardGenerated_from\'Payment_method_details\'
-- 
-- Transaction-specific details of the payment method used in the payment.
data PaymentMethodCardGeneratedFrom'PaymentMethodDetails' = PaymentMethodCardGeneratedFrom'PaymentMethodDetails' {
  -- | ach_credit_transfer: 
  paymentMethodCardGeneratedFrom'PaymentMethodDetails'AchCreditTransfer :: (GHC.Maybe.Maybe PaymentMethodDetailsAchCreditTransfer)
  -- | ach_debit: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'AchDebit :: (GHC.Maybe.Maybe PaymentMethodDetailsAchDebit)
  -- | alipay: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Alipay :: (GHC.Maybe.Maybe PaymentMethodDetailsAlipay)
  -- | bancontact: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Bancontact :: (GHC.Maybe.Maybe PaymentMethodDetailsBancontact)
  -- | card: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Card :: (GHC.Maybe.Maybe PaymentMethodDetailsCard)
  -- | card_present: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'CardPresent :: (GHC.Maybe.Maybe PaymentMethodDetailsCardPresent)
  -- | eps: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Eps :: (GHC.Maybe.Maybe PaymentMethodDetailsEps)
  -- | fpx: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Fpx :: (GHC.Maybe.Maybe PaymentMethodDetailsFpx)
  -- | giropay: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Giropay :: (GHC.Maybe.Maybe PaymentMethodDetailsGiropay)
  -- | ideal: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Ideal :: (GHC.Maybe.Maybe PaymentMethodDetailsIdeal)
  -- | klarna: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Klarna :: (GHC.Maybe.Maybe PaymentMethodDetailsKlarna)
  -- | multibanco: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Multibanco :: (GHC.Maybe.Maybe PaymentMethodDetailsMultibanco)
  -- | p24: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'P24 :: (GHC.Maybe.Maybe PaymentMethodDetailsP24)
  -- | sepa_debit: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'SepaDebit :: (GHC.Maybe.Maybe PaymentMethodDetailsSepaDebit)
  -- | sofort: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Sofort :: (GHC.Maybe.Maybe PaymentMethodDetailsSofort)
  -- | stripe_account: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'StripeAccount :: (GHC.Maybe.Maybe PaymentMethodDetailsStripeAccount)
  -- | type: The type of transaction-specific details of the payment method used in the payment, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`klarna\`, \`multibanco\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`stripe_account\`, or \`wechat\`.
  -- An additional hash is included on \`payment_method_details\` with a name matching this value.
  -- It contains information specific to the payment method.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Type :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | wechat: 
  , paymentMethodCardGeneratedFrom'PaymentMethodDetails'Wechat :: (GHC.Maybe.Maybe PaymentMethodDetailsWechat)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardGeneratedFrom'PaymentMethodDetails'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "ach_credit_transfer" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'AchCreditTransfer obj) : (Data.Aeson..=) "ach_debit" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'AchDebit obj) : (Data.Aeson..=) "alipay" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Alipay obj) : (Data.Aeson..=) "bancontact" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Bancontact obj) : (Data.Aeson..=) "card" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Card obj) : (Data.Aeson..=) "card_present" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'CardPresent obj) : (Data.Aeson..=) "eps" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Eps obj) : (Data.Aeson..=) "fpx" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Fpx obj) : (Data.Aeson..=) "giropay" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Giropay obj) : (Data.Aeson..=) "ideal" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Ideal obj) : (Data.Aeson..=) "klarna" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Klarna obj) : (Data.Aeson..=) "multibanco" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Multibanco obj) : (Data.Aeson..=) "p24" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'P24 obj) : (Data.Aeson..=) "sepa_debit" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'SepaDebit obj) : (Data.Aeson..=) "sofort" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Sofort obj) : (Data.Aeson..=) "stripe_account" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'StripeAccount obj) : (Data.Aeson..=) "type" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Type obj) : (Data.Aeson..=) "wechat" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Wechat obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "ach_credit_transfer" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'AchCreditTransfer obj) GHC.Base.<> ((Data.Aeson..=) "ach_debit" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'AchDebit obj) GHC.Base.<> ((Data.Aeson..=) "alipay" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Alipay obj) GHC.Base.<> ((Data.Aeson..=) "bancontact" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Bancontact obj) GHC.Base.<> ((Data.Aeson..=) "card" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Card obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'CardPresent obj) GHC.Base.<> ((Data.Aeson..=) "eps" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Eps obj) GHC.Base.<> ((Data.Aeson..=) "fpx" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Fpx obj) GHC.Base.<> ((Data.Aeson..=) "giropay" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Giropay obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Ideal obj) GHC.Base.<> ((Data.Aeson..=) "klarna" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Klarna obj) GHC.Base.<> ((Data.Aeson..=) "multibanco" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Multibanco obj) GHC.Base.<> ((Data.Aeson..=) "p24" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'P24 obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'SepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "sofort" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Sofort obj) GHC.Base.<> ((Data.Aeson..=) "stripe_account" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'StripeAccount obj) GHC.Base.<> ((Data.Aeson..=) "type" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Type obj) GHC.Base.<> (Data.Aeson..=) "wechat" (paymentMethodCardGeneratedFrom'PaymentMethodDetails'Wechat obj))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardGeneratedFrom'PaymentMethodDetails'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardGeneratedFrom'PaymentMethodDetails'" (\obj -> (((((((((((((((((GHC.Base.pure PaymentMethodCardGeneratedFrom'PaymentMethodDetails' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fpx")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "stripe_account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat"))
-- | Defines the data type for the schema payment_method_cardThree_d_secure_usage\'
-- 
-- Contains details on how this Card maybe be used for 3D Secure authentication.
data PaymentMethodCardThreeDSecureUsage' = PaymentMethodCardThreeDSecureUsage' {
  -- | supported: Whether 3D Secure is supported on this card.
  paymentMethodCardThreeDSecureUsage'Supported :: (GHC.Maybe.Maybe GHC.Types.Bool)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardThreeDSecureUsage'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "supported" (paymentMethodCardThreeDSecureUsage'Supported obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "supported" (paymentMethodCardThreeDSecureUsage'Supported obj))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardThreeDSecureUsage'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardThreeDSecureUsage'" (\obj -> GHC.Base.pure PaymentMethodCardThreeDSecureUsage' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "supported"))
-- | Defines the data type for the schema payment_method_cardWallet\'
-- 
-- If this Card is part of a card wallet, this contains the details of the card wallet.
data PaymentMethodCardWallet' = PaymentMethodCardWallet' {
  -- | amex_express_checkout: 
  paymentMethodCardWallet'AmexExpressCheckout :: (GHC.Maybe.Maybe PaymentMethodCardWalletAmexExpressCheckout)
  -- | apple_pay: 
  , paymentMethodCardWallet'ApplePay :: (GHC.Maybe.Maybe PaymentMethodCardWalletApplePay)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWallet'DynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | google_pay: 
  , paymentMethodCardWallet'GooglePay :: (GHC.Maybe.Maybe PaymentMethodCardWalletGooglePay)
  -- | masterpass: 
  , paymentMethodCardWallet'Masterpass :: (GHC.Maybe.Maybe PaymentMethodCardWalletMasterpass)
  -- | samsung_pay: 
  , paymentMethodCardWallet'SamsungPay :: (GHC.Maybe.Maybe PaymentMethodCardWalletSamsungPay)
  -- | type: The type of the card wallet, one of \`amex_express_checkout\`, \`apple_pay\`, \`google_pay\`, \`masterpass\`, \`samsung_pay\`, or \`visa_checkout\`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.
  , paymentMethodCardWallet'Type :: (GHC.Maybe.Maybe PaymentMethodCardWallet'Type')
  -- | visa_checkout: 
  , paymentMethodCardWallet'VisaCheckout :: (GHC.Maybe.Maybe PaymentMethodCardWalletVisaCheckout)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardWallet'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amex_express_checkout" (paymentMethodCardWallet'AmexExpressCheckout obj) : (Data.Aeson..=) "apple_pay" (paymentMethodCardWallet'ApplePay obj) : (Data.Aeson..=) "dynamic_last4" (paymentMethodCardWallet'DynamicLast4 obj) : (Data.Aeson..=) "google_pay" (paymentMethodCardWallet'GooglePay obj) : (Data.Aeson..=) "masterpass" (paymentMethodCardWallet'Masterpass obj) : (Data.Aeson..=) "samsung_pay" (paymentMethodCardWallet'SamsungPay obj) : (Data.Aeson..=) "type" (paymentMethodCardWallet'Type obj) : (Data.Aeson..=) "visa_checkout" (paymentMethodCardWallet'VisaCheckout obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amex_express_checkout" (paymentMethodCardWallet'AmexExpressCheckout obj) GHC.Base.<> ((Data.Aeson..=) "apple_pay" (paymentMethodCardWallet'ApplePay obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (paymentMethodCardWallet'DynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "google_pay" (paymentMethodCardWallet'GooglePay obj) GHC.Base.<> ((Data.Aeson..=) "masterpass" (paymentMethodCardWallet'Masterpass obj) GHC.Base.<> ((Data.Aeson..=) "samsung_pay" (paymentMethodCardWallet'SamsungPay obj) GHC.Base.<> ((Data.Aeson..=) "type" (paymentMethodCardWallet'Type obj) GHC.Base.<> (Data.Aeson..=) "visa_checkout" (paymentMethodCardWallet'VisaCheckout obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardWallet'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardWallet'" (\obj -> (((((((GHC.Base.pure PaymentMethodCardWallet' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amex_express_checkout")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "apple_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "google_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "masterpass")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "samsung_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "visa_checkout"))
-- | Defines the enum schema payment_method_cardWallet\'Type\'
-- 
-- The type of the card wallet, one of \`amex_express_checkout\`, \`apple_pay\`, \`google_pay\`, \`masterpass\`, \`samsung_pay\`, or \`visa_checkout\`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.
data PaymentMethodCardWallet'Type'
    = PaymentMethodCardWallet'Type'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodCardWallet'Type'EnumTyped GHC.Base.String
    | PaymentMethodCardWallet'Type'EnumStringAmexExpressCheckout
    | PaymentMethodCardWallet'Type'EnumStringApplePay
    | PaymentMethodCardWallet'Type'EnumStringGooglePay
    | PaymentMethodCardWallet'Type'EnumStringMasterpass
    | PaymentMethodCardWallet'Type'EnumStringSamsungPay
    | PaymentMethodCardWallet'Type'EnumStringVisaCheckout
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardWallet'Type'
    where toJSON (PaymentMethodCardWallet'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodCardWallet'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodCardWallet'Type'EnumStringAmexExpressCheckout) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amex_express_checkout"
          toJSON (PaymentMethodCardWallet'Type'EnumStringApplePay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "apple_pay"
          toJSON (PaymentMethodCardWallet'Type'EnumStringGooglePay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "google_pay"
          toJSON (PaymentMethodCardWallet'Type'EnumStringMasterpass) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masterpass"
          toJSON (PaymentMethodCardWallet'Type'EnumStringSamsungPay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "samsung_pay"
          toJSON (PaymentMethodCardWallet'Type'EnumStringVisaCheckout) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "visa_checkout"
instance Data.Aeson.FromJSON PaymentMethodCardWallet'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amex_express_checkout")
                                          then PaymentMethodCardWallet'Type'EnumStringAmexExpressCheckout
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "apple_pay")
                                                then PaymentMethodCardWallet'Type'EnumStringApplePay
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "google_pay")
                                                      then PaymentMethodCardWallet'Type'EnumStringGooglePay
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masterpass")
                                                            then PaymentMethodCardWallet'Type'EnumStringMasterpass
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "samsung_pay")
                                                                  then PaymentMethodCardWallet'Type'EnumStringSamsungPay
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "visa_checkout")
                                                                        then PaymentMethodCardWallet'Type'EnumStringVisaCheckout
                                                                        else PaymentMethodCardWallet'Type'EnumOther val)
-- | Defines the data type for the schema payment_method_card_generated_card
-- 
-- 
data PaymentMethodCardGeneratedCard = PaymentMethodCardGeneratedCard {
  -- | charge: The charge that created this object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodCardGeneratedCardCharge :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | payment_method_details: Transaction-specific details of the payment method used in the payment.
  , paymentMethodCardGeneratedCardPaymentMethodDetails :: (GHC.Maybe.Maybe PaymentMethodCardGeneratedCardPaymentMethodDetails')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardGeneratedCard
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "charge" (paymentMethodCardGeneratedCardCharge obj) : (Data.Aeson..=) "payment_method_details" (paymentMethodCardGeneratedCardPaymentMethodDetails obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "charge" (paymentMethodCardGeneratedCardCharge obj) GHC.Base.<> (Data.Aeson..=) "payment_method_details" (paymentMethodCardGeneratedCardPaymentMethodDetails obj))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardGeneratedCard
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardGeneratedCard" (\obj -> (GHC.Base.pure PaymentMethodCardGeneratedCard GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method_details"))
-- | Defines the data type for the schema payment_method_card_generated_cardPayment_method_details\'
-- 
-- Transaction-specific details of the payment method used in the payment.
data PaymentMethodCardGeneratedCardPaymentMethodDetails' = PaymentMethodCardGeneratedCardPaymentMethodDetails' {
  -- | ach_credit_transfer: 
  paymentMethodCardGeneratedCardPaymentMethodDetails'AchCreditTransfer :: (GHC.Maybe.Maybe PaymentMethodDetailsAchCreditTransfer)
  -- | ach_debit: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'AchDebit :: (GHC.Maybe.Maybe PaymentMethodDetailsAchDebit)
  -- | alipay: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Alipay :: (GHC.Maybe.Maybe PaymentMethodDetailsAlipay)
  -- | bancontact: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Bancontact :: (GHC.Maybe.Maybe PaymentMethodDetailsBancontact)
  -- | card: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Card :: (GHC.Maybe.Maybe PaymentMethodDetailsCard)
  -- | card_present: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'CardPresent :: (GHC.Maybe.Maybe PaymentMethodDetailsCardPresent)
  -- | eps: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Eps :: (GHC.Maybe.Maybe PaymentMethodDetailsEps)
  -- | fpx: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Fpx :: (GHC.Maybe.Maybe PaymentMethodDetailsFpx)
  -- | giropay: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Giropay :: (GHC.Maybe.Maybe PaymentMethodDetailsGiropay)
  -- | ideal: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Ideal :: (GHC.Maybe.Maybe PaymentMethodDetailsIdeal)
  -- | klarna: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Klarna :: (GHC.Maybe.Maybe PaymentMethodDetailsKlarna)
  -- | multibanco: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Multibanco :: (GHC.Maybe.Maybe PaymentMethodDetailsMultibanco)
  -- | p24: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'P24 :: (GHC.Maybe.Maybe PaymentMethodDetailsP24)
  -- | sepa_debit: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'SepaDebit :: (GHC.Maybe.Maybe PaymentMethodDetailsSepaDebit)
  -- | sofort: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Sofort :: (GHC.Maybe.Maybe PaymentMethodDetailsSofort)
  -- | stripe_account: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'StripeAccount :: (GHC.Maybe.Maybe PaymentMethodDetailsStripeAccount)
  -- | type: The type of transaction-specific details of the payment method used in the payment, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`klarna\`, \`multibanco\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`stripe_account\`, or \`wechat\`.
  -- An additional hash is included on \`payment_method_details\` with a name matching this value.
  -- It contains information specific to the payment method.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Type :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | wechat: 
  , paymentMethodCardGeneratedCardPaymentMethodDetails'Wechat :: (GHC.Maybe.Maybe PaymentMethodDetailsWechat)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardGeneratedCardPaymentMethodDetails'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "ach_credit_transfer" (paymentMethodCardGeneratedCardPaymentMethodDetails'AchCreditTransfer obj) : (Data.Aeson..=) "ach_debit" (paymentMethodCardGeneratedCardPaymentMethodDetails'AchDebit obj) : (Data.Aeson..=) "alipay" (paymentMethodCardGeneratedCardPaymentMethodDetails'Alipay obj) : (Data.Aeson..=) "bancontact" (paymentMethodCardGeneratedCardPaymentMethodDetails'Bancontact obj) : (Data.Aeson..=) "card" (paymentMethodCardGeneratedCardPaymentMethodDetails'Card obj) : (Data.Aeson..=) "card_present" (paymentMethodCardGeneratedCardPaymentMethodDetails'CardPresent obj) : (Data.Aeson..=) "eps" (paymentMethodCardGeneratedCardPaymentMethodDetails'Eps obj) : (Data.Aeson..=) "fpx" (paymentMethodCardGeneratedCardPaymentMethodDetails'Fpx obj) : (Data.Aeson..=) "giropay" (paymentMethodCardGeneratedCardPaymentMethodDetails'Giropay obj) : (Data.Aeson..=) "ideal" (paymentMethodCardGeneratedCardPaymentMethodDetails'Ideal obj) : (Data.Aeson..=) "klarna" (paymentMethodCardGeneratedCardPaymentMethodDetails'Klarna obj) : (Data.Aeson..=) "multibanco" (paymentMethodCardGeneratedCardPaymentMethodDetails'Multibanco obj) : (Data.Aeson..=) "p24" (paymentMethodCardGeneratedCardPaymentMethodDetails'P24 obj) : (Data.Aeson..=) "sepa_debit" (paymentMethodCardGeneratedCardPaymentMethodDetails'SepaDebit obj) : (Data.Aeson..=) "sofort" (paymentMethodCardGeneratedCardPaymentMethodDetails'Sofort obj) : (Data.Aeson..=) "stripe_account" (paymentMethodCardGeneratedCardPaymentMethodDetails'StripeAccount obj) : (Data.Aeson..=) "type" (paymentMethodCardGeneratedCardPaymentMethodDetails'Type obj) : (Data.Aeson..=) "wechat" (paymentMethodCardGeneratedCardPaymentMethodDetails'Wechat obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "ach_credit_transfer" (paymentMethodCardGeneratedCardPaymentMethodDetails'AchCreditTransfer obj) GHC.Base.<> ((Data.Aeson..=) "ach_debit" (paymentMethodCardGeneratedCardPaymentMethodDetails'AchDebit obj) GHC.Base.<> ((Data.Aeson..=) "alipay" (paymentMethodCardGeneratedCardPaymentMethodDetails'Alipay obj) GHC.Base.<> ((Data.Aeson..=) "bancontact" (paymentMethodCardGeneratedCardPaymentMethodDetails'Bancontact obj) GHC.Base.<> ((Data.Aeson..=) "card" (paymentMethodCardGeneratedCardPaymentMethodDetails'Card obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (paymentMethodCardGeneratedCardPaymentMethodDetails'CardPresent obj) GHC.Base.<> ((Data.Aeson..=) "eps" (paymentMethodCardGeneratedCardPaymentMethodDetails'Eps obj) GHC.Base.<> ((Data.Aeson..=) "fpx" (paymentMethodCardGeneratedCardPaymentMethodDetails'Fpx obj) GHC.Base.<> ((Data.Aeson..=) "giropay" (paymentMethodCardGeneratedCardPaymentMethodDetails'Giropay obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (paymentMethodCardGeneratedCardPaymentMethodDetails'Ideal obj) GHC.Base.<> ((Data.Aeson..=) "klarna" (paymentMethodCardGeneratedCardPaymentMethodDetails'Klarna obj) GHC.Base.<> ((Data.Aeson..=) "multibanco" (paymentMethodCardGeneratedCardPaymentMethodDetails'Multibanco obj) GHC.Base.<> ((Data.Aeson..=) "p24" (paymentMethodCardGeneratedCardPaymentMethodDetails'P24 obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (paymentMethodCardGeneratedCardPaymentMethodDetails'SepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "sofort" (paymentMethodCardGeneratedCardPaymentMethodDetails'Sofort obj) GHC.Base.<> ((Data.Aeson..=) "stripe_account" (paymentMethodCardGeneratedCardPaymentMethodDetails'StripeAccount obj) GHC.Base.<> ((Data.Aeson..=) "type" (paymentMethodCardGeneratedCardPaymentMethodDetails'Type obj) GHC.Base.<> (Data.Aeson..=) "wechat" (paymentMethodCardGeneratedCardPaymentMethodDetails'Wechat obj))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardGeneratedCardPaymentMethodDetails'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardGeneratedCardPaymentMethodDetails'" (\obj -> (((((((((((((((((GHC.Base.pure PaymentMethodCardGeneratedCardPaymentMethodDetails' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fpx")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "stripe_account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat"))
-- | Defines the data type for the schema payment_method_card_wallet
-- 
-- 
data PaymentMethodCardWallet = PaymentMethodCardWallet {
  -- | amex_express_checkout: 
  paymentMethodCardWalletAmexExpressCheckout :: (GHC.Maybe.Maybe PaymentMethodCardWalletAmexExpressCheckout)
  -- | apple_pay: 
  , paymentMethodCardWalletApplePay :: (GHC.Maybe.Maybe PaymentMethodCardWalletApplePay)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletDynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | google_pay: 
  , paymentMethodCardWalletGooglePay :: (GHC.Maybe.Maybe PaymentMethodCardWalletGooglePay)
  -- | masterpass: 
  , paymentMethodCardWalletMasterpass :: (GHC.Maybe.Maybe PaymentMethodCardWalletMasterpass)
  -- | samsung_pay: 
  , paymentMethodCardWalletSamsungPay :: (GHC.Maybe.Maybe PaymentMethodCardWalletSamsungPay)
  -- | type: The type of the card wallet, one of \`amex_express_checkout\`, \`apple_pay\`, \`google_pay\`, \`masterpass\`, \`samsung_pay\`, or \`visa_checkout\`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.
  , paymentMethodCardWalletType :: PaymentMethodCardWalletType'
  -- | visa_checkout: 
  , paymentMethodCardWalletVisaCheckout :: (GHC.Maybe.Maybe PaymentMethodCardWalletVisaCheckout)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardWallet
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amex_express_checkout" (paymentMethodCardWalletAmexExpressCheckout obj) : (Data.Aeson..=) "apple_pay" (paymentMethodCardWalletApplePay obj) : (Data.Aeson..=) "dynamic_last4" (paymentMethodCardWalletDynamicLast4 obj) : (Data.Aeson..=) "google_pay" (paymentMethodCardWalletGooglePay obj) : (Data.Aeson..=) "masterpass" (paymentMethodCardWalletMasterpass obj) : (Data.Aeson..=) "samsung_pay" (paymentMethodCardWalletSamsungPay obj) : (Data.Aeson..=) "type" (paymentMethodCardWalletType obj) : (Data.Aeson..=) "visa_checkout" (paymentMethodCardWalletVisaCheckout obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amex_express_checkout" (paymentMethodCardWalletAmexExpressCheckout obj) GHC.Base.<> ((Data.Aeson..=) "apple_pay" (paymentMethodCardWalletApplePay obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (paymentMethodCardWalletDynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "google_pay" (paymentMethodCardWalletGooglePay obj) GHC.Base.<> ((Data.Aeson..=) "masterpass" (paymentMethodCardWalletMasterpass obj) GHC.Base.<> ((Data.Aeson..=) "samsung_pay" (paymentMethodCardWalletSamsungPay obj) GHC.Base.<> ((Data.Aeson..=) "type" (paymentMethodCardWalletType obj) GHC.Base.<> (Data.Aeson..=) "visa_checkout" (paymentMethodCardWalletVisaCheckout obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardWallet
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardWallet" (\obj -> (((((((GHC.Base.pure PaymentMethodCardWallet GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amex_express_checkout")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "apple_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "google_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "masterpass")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "samsung_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "visa_checkout"))
-- | Defines the enum schema payment_method_card_walletType\'
-- 
-- The type of the card wallet, one of \`amex_express_checkout\`, \`apple_pay\`, \`google_pay\`, \`masterpass\`, \`samsung_pay\`, or \`visa_checkout\`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.
data PaymentMethodCardWalletType'
    = PaymentMethodCardWalletType'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodCardWalletType'EnumTyped GHC.Base.String
    | PaymentMethodCardWalletType'EnumStringAmexExpressCheckout
    | PaymentMethodCardWalletType'EnumStringApplePay
    | PaymentMethodCardWalletType'EnumStringGooglePay
    | PaymentMethodCardWalletType'EnumStringMasterpass
    | PaymentMethodCardWalletType'EnumStringSamsungPay
    | PaymentMethodCardWalletType'EnumStringVisaCheckout
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardWalletType'
    where toJSON (PaymentMethodCardWalletType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodCardWalletType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodCardWalletType'EnumStringAmexExpressCheckout) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amex_express_checkout"
          toJSON (PaymentMethodCardWalletType'EnumStringApplePay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "apple_pay"
          toJSON (PaymentMethodCardWalletType'EnumStringGooglePay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "google_pay"
          toJSON (PaymentMethodCardWalletType'EnumStringMasterpass) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masterpass"
          toJSON (PaymentMethodCardWalletType'EnumStringSamsungPay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "samsung_pay"
          toJSON (PaymentMethodCardWalletType'EnumStringVisaCheckout) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "visa_checkout"
instance Data.Aeson.FromJSON PaymentMethodCardWalletType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amex_express_checkout")
                                          then PaymentMethodCardWalletType'EnumStringAmexExpressCheckout
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "apple_pay")
                                                then PaymentMethodCardWalletType'EnumStringApplePay
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "google_pay")
                                                      then PaymentMethodCardWalletType'EnumStringGooglePay
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masterpass")
                                                            then PaymentMethodCardWalletType'EnumStringMasterpass
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "samsung_pay")
                                                                  then PaymentMethodCardWalletType'EnumStringSamsungPay
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "visa_checkout")
                                                                        then PaymentMethodCardWalletType'EnumStringVisaCheckout
                                                                        else PaymentMethodCardWalletType'EnumOther val)
-- | Defines the data type for the schema payment_method_card_wallet_masterpass
-- 
-- 
data PaymentMethodCardWalletMasterpass = PaymentMethodCardWalletMasterpass {
  -- | billing_address: Owner\'s verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  paymentMethodCardWalletMasterpassBillingAddress :: (GHC.Maybe.Maybe PaymentMethodCardWalletMasterpassBillingAddress')
  -- | email: Owner\'s verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | shipping_address: Owner\'s verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , paymentMethodCardWalletMasterpassShippingAddress :: (GHC.Maybe.Maybe PaymentMethodCardWalletMasterpassShippingAddress')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardWalletMasterpass
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_address" (paymentMethodCardWalletMasterpassBillingAddress obj) : (Data.Aeson..=) "email" (paymentMethodCardWalletMasterpassEmail obj) : (Data.Aeson..=) "name" (paymentMethodCardWalletMasterpassName obj) : (Data.Aeson..=) "shipping_address" (paymentMethodCardWalletMasterpassShippingAddress obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_address" (paymentMethodCardWalletMasterpassBillingAddress obj) GHC.Base.<> ((Data.Aeson..=) "email" (paymentMethodCardWalletMasterpassEmail obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentMethodCardWalletMasterpassName obj) GHC.Base.<> (Data.Aeson..=) "shipping_address" (paymentMethodCardWalletMasterpassShippingAddress obj))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardWalletMasterpass
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardWalletMasterpass" (\obj -> (((GHC.Base.pure PaymentMethodCardWalletMasterpass GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping_address"))
-- | Defines the data type for the schema payment_method_card_wallet_masterpassBilling_address\'
-- 
-- Owner\\\'s verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentMethodCardWalletMasterpassBillingAddress' = PaymentMethodCardWalletMasterpassBillingAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodCardWalletMasterpassBillingAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassBillingAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassBillingAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassBillingAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassBillingAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassBillingAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardWalletMasterpassBillingAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentMethodCardWalletMasterpassBillingAddress'City obj) : (Data.Aeson..=) "country" (paymentMethodCardWalletMasterpassBillingAddress'Country obj) : (Data.Aeson..=) "line1" (paymentMethodCardWalletMasterpassBillingAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentMethodCardWalletMasterpassBillingAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentMethodCardWalletMasterpassBillingAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentMethodCardWalletMasterpassBillingAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentMethodCardWalletMasterpassBillingAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodCardWalletMasterpassBillingAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentMethodCardWalletMasterpassBillingAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentMethodCardWalletMasterpassBillingAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentMethodCardWalletMasterpassBillingAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentMethodCardWalletMasterpassBillingAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardWalletMasterpassBillingAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardWalletMasterpassBillingAddress'" (\obj -> (((((GHC.Base.pure PaymentMethodCardWalletMasterpassBillingAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema payment_method_card_wallet_masterpassShipping_address\'
-- 
-- Owner\\\'s verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentMethodCardWalletMasterpassShippingAddress' = PaymentMethodCardWalletMasterpassShippingAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodCardWalletMasterpassShippingAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassShippingAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassShippingAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassShippingAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassShippingAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletMasterpassShippingAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardWalletMasterpassShippingAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentMethodCardWalletMasterpassShippingAddress'City obj) : (Data.Aeson..=) "country" (paymentMethodCardWalletMasterpassShippingAddress'Country obj) : (Data.Aeson..=) "line1" (paymentMethodCardWalletMasterpassShippingAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentMethodCardWalletMasterpassShippingAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentMethodCardWalletMasterpassShippingAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentMethodCardWalletMasterpassShippingAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentMethodCardWalletMasterpassShippingAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodCardWalletMasterpassShippingAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentMethodCardWalletMasterpassShippingAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentMethodCardWalletMasterpassShippingAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentMethodCardWalletMasterpassShippingAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentMethodCardWalletMasterpassShippingAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardWalletMasterpassShippingAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardWalletMasterpassShippingAddress'" (\obj -> (((((GHC.Base.pure PaymentMethodCardWalletMasterpassShippingAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema payment_method_card_wallet_visa_checkout
-- 
-- 
data PaymentMethodCardWalletVisaCheckout = PaymentMethodCardWalletVisaCheckout {
  -- | billing_address: Owner\'s verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  paymentMethodCardWalletVisaCheckoutBillingAddress :: (GHC.Maybe.Maybe PaymentMethodCardWalletVisaCheckoutBillingAddress')
  -- | email: Owner\'s verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | shipping_address: Owner\'s verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , paymentMethodCardWalletVisaCheckoutShippingAddress :: (GHC.Maybe.Maybe PaymentMethodCardWalletVisaCheckoutShippingAddress')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardWalletVisaCheckout
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_address" (paymentMethodCardWalletVisaCheckoutBillingAddress obj) : (Data.Aeson..=) "email" (paymentMethodCardWalletVisaCheckoutEmail obj) : (Data.Aeson..=) "name" (paymentMethodCardWalletVisaCheckoutName obj) : (Data.Aeson..=) "shipping_address" (paymentMethodCardWalletVisaCheckoutShippingAddress obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_address" (paymentMethodCardWalletVisaCheckoutBillingAddress obj) GHC.Base.<> ((Data.Aeson..=) "email" (paymentMethodCardWalletVisaCheckoutEmail obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentMethodCardWalletVisaCheckoutName obj) GHC.Base.<> (Data.Aeson..=) "shipping_address" (paymentMethodCardWalletVisaCheckoutShippingAddress obj))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardWalletVisaCheckout
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardWalletVisaCheckout" (\obj -> (((GHC.Base.pure PaymentMethodCardWalletVisaCheckout GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping_address"))
-- | Defines the data type for the schema payment_method_card_wallet_visa_checkoutBilling_address\'
-- 
-- Owner\\\'s verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentMethodCardWalletVisaCheckoutBillingAddress' = PaymentMethodCardWalletVisaCheckoutBillingAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodCardWalletVisaCheckoutBillingAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutBillingAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutBillingAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutBillingAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutBillingAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutBillingAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardWalletVisaCheckoutBillingAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentMethodCardWalletVisaCheckoutBillingAddress'City obj) : (Data.Aeson..=) "country" (paymentMethodCardWalletVisaCheckoutBillingAddress'Country obj) : (Data.Aeson..=) "line1" (paymentMethodCardWalletVisaCheckoutBillingAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentMethodCardWalletVisaCheckoutBillingAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentMethodCardWalletVisaCheckoutBillingAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentMethodCardWalletVisaCheckoutBillingAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentMethodCardWalletVisaCheckoutBillingAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodCardWalletVisaCheckoutBillingAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentMethodCardWalletVisaCheckoutBillingAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentMethodCardWalletVisaCheckoutBillingAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentMethodCardWalletVisaCheckoutBillingAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentMethodCardWalletVisaCheckoutBillingAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardWalletVisaCheckoutBillingAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardWalletVisaCheckoutBillingAddress'" (\obj -> (((((GHC.Base.pure PaymentMethodCardWalletVisaCheckoutBillingAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema payment_method_card_wallet_visa_checkoutShipping_address\'
-- 
-- Owner\\\'s verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentMethodCardWalletVisaCheckoutShippingAddress' = PaymentMethodCardWalletVisaCheckoutShippingAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodCardWalletVisaCheckoutShippingAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutShippingAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutShippingAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutShippingAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutShippingAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodCardWalletVisaCheckoutShippingAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodCardWalletVisaCheckoutShippingAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentMethodCardWalletVisaCheckoutShippingAddress'City obj) : (Data.Aeson..=) "country" (paymentMethodCardWalletVisaCheckoutShippingAddress'Country obj) : (Data.Aeson..=) "line1" (paymentMethodCardWalletVisaCheckoutShippingAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentMethodCardWalletVisaCheckoutShippingAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentMethodCardWalletVisaCheckoutShippingAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentMethodCardWalletVisaCheckoutShippingAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentMethodCardWalletVisaCheckoutShippingAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodCardWalletVisaCheckoutShippingAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentMethodCardWalletVisaCheckoutShippingAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentMethodCardWalletVisaCheckoutShippingAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentMethodCardWalletVisaCheckoutShippingAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentMethodCardWalletVisaCheckoutShippingAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodCardWalletVisaCheckoutShippingAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodCardWalletVisaCheckoutShippingAddress'" (\obj -> (((((GHC.Base.pure PaymentMethodCardWalletVisaCheckoutShippingAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema payment_method_details
-- 
-- 
data PaymentMethodDetails = PaymentMethodDetails {
  -- | ach_credit_transfer: 
  paymentMethodDetailsAchCreditTransfer :: (GHC.Maybe.Maybe PaymentMethodDetailsAchCreditTransfer)
  -- | ach_debit: 
  , paymentMethodDetailsAchDebit :: (GHC.Maybe.Maybe PaymentMethodDetailsAchDebit)
  -- | alipay: 
  , paymentMethodDetailsAlipay :: (GHC.Maybe.Maybe PaymentMethodDetailsAlipay)
  -- | bancontact: 
  , paymentMethodDetailsBancontact :: (GHC.Maybe.Maybe PaymentMethodDetailsBancontact)
  -- | card: 
  , paymentMethodDetailsCard :: (GHC.Maybe.Maybe PaymentMethodDetailsCard)
  -- | card_present: 
  , paymentMethodDetailsCardPresent :: (GHC.Maybe.Maybe PaymentMethodDetailsCardPresent)
  -- | eps: 
  , paymentMethodDetailsEps :: (GHC.Maybe.Maybe PaymentMethodDetailsEps)
  -- | fpx: 
  , paymentMethodDetailsFpx :: (GHC.Maybe.Maybe PaymentMethodDetailsFpx)
  -- | giropay: 
  , paymentMethodDetailsGiropay :: (GHC.Maybe.Maybe PaymentMethodDetailsGiropay)
  -- | ideal: 
  , paymentMethodDetailsIdeal :: (GHC.Maybe.Maybe PaymentMethodDetailsIdeal)
  -- | klarna: 
  , paymentMethodDetailsKlarna :: (GHC.Maybe.Maybe PaymentMethodDetailsKlarna)
  -- | multibanco: 
  , paymentMethodDetailsMultibanco :: (GHC.Maybe.Maybe PaymentMethodDetailsMultibanco)
  -- | p24: 
  , paymentMethodDetailsP24 :: (GHC.Maybe.Maybe PaymentMethodDetailsP24)
  -- | sepa_debit: 
  , paymentMethodDetailsSepaDebit :: (GHC.Maybe.Maybe PaymentMethodDetailsSepaDebit)
  -- | sofort: 
  , paymentMethodDetailsSofort :: (GHC.Maybe.Maybe PaymentMethodDetailsSofort)
  -- | stripe_account: 
  , paymentMethodDetailsStripeAccount :: (GHC.Maybe.Maybe PaymentMethodDetailsStripeAccount)
  -- | type: The type of transaction-specific details of the payment method used in the payment, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`klarna\`, \`multibanco\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`stripe_account\`, or \`wechat\`.
  -- An additional hash is included on \`payment_method_details\` with a name matching this value.
  -- It contains information specific to the payment method.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsType :: GHC.Base.String
  -- | wechat: 
  , paymentMethodDetailsWechat :: (GHC.Maybe.Maybe PaymentMethodDetailsWechat)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetails
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "ach_credit_transfer" (paymentMethodDetailsAchCreditTransfer obj) : (Data.Aeson..=) "ach_debit" (paymentMethodDetailsAchDebit obj) : (Data.Aeson..=) "alipay" (paymentMethodDetailsAlipay obj) : (Data.Aeson..=) "bancontact" (paymentMethodDetailsBancontact obj) : (Data.Aeson..=) "card" (paymentMethodDetailsCard obj) : (Data.Aeson..=) "card_present" (paymentMethodDetailsCardPresent obj) : (Data.Aeson..=) "eps" (paymentMethodDetailsEps obj) : (Data.Aeson..=) "fpx" (paymentMethodDetailsFpx obj) : (Data.Aeson..=) "giropay" (paymentMethodDetailsGiropay obj) : (Data.Aeson..=) "ideal" (paymentMethodDetailsIdeal obj) : (Data.Aeson..=) "klarna" (paymentMethodDetailsKlarna obj) : (Data.Aeson..=) "multibanco" (paymentMethodDetailsMultibanco obj) : (Data.Aeson..=) "p24" (paymentMethodDetailsP24 obj) : (Data.Aeson..=) "sepa_debit" (paymentMethodDetailsSepaDebit obj) : (Data.Aeson..=) "sofort" (paymentMethodDetailsSofort obj) : (Data.Aeson..=) "stripe_account" (paymentMethodDetailsStripeAccount obj) : (Data.Aeson..=) "type" (paymentMethodDetailsType obj) : (Data.Aeson..=) "wechat" (paymentMethodDetailsWechat obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "ach_credit_transfer" (paymentMethodDetailsAchCreditTransfer obj) GHC.Base.<> ((Data.Aeson..=) "ach_debit" (paymentMethodDetailsAchDebit obj) GHC.Base.<> ((Data.Aeson..=) "alipay" (paymentMethodDetailsAlipay obj) GHC.Base.<> ((Data.Aeson..=) "bancontact" (paymentMethodDetailsBancontact obj) GHC.Base.<> ((Data.Aeson..=) "card" (paymentMethodDetailsCard obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (paymentMethodDetailsCardPresent obj) GHC.Base.<> ((Data.Aeson..=) "eps" (paymentMethodDetailsEps obj) GHC.Base.<> ((Data.Aeson..=) "fpx" (paymentMethodDetailsFpx obj) GHC.Base.<> ((Data.Aeson..=) "giropay" (paymentMethodDetailsGiropay obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (paymentMethodDetailsIdeal obj) GHC.Base.<> ((Data.Aeson..=) "klarna" (paymentMethodDetailsKlarna obj) GHC.Base.<> ((Data.Aeson..=) "multibanco" (paymentMethodDetailsMultibanco obj) GHC.Base.<> ((Data.Aeson..=) "p24" (paymentMethodDetailsP24 obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (paymentMethodDetailsSepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "sofort" (paymentMethodDetailsSofort obj) GHC.Base.<> ((Data.Aeson..=) "stripe_account" (paymentMethodDetailsStripeAccount obj) GHC.Base.<> ((Data.Aeson..=) "type" (paymentMethodDetailsType obj) GHC.Base.<> (Data.Aeson..=) "wechat" (paymentMethodDetailsWechat obj))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetails
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetails" (\obj -> (((((((((((((((((GHC.Base.pure PaymentMethodDetails GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fpx")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "stripe_account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat"))
-- | Defines the data type for the schema payment_method_details_card
-- 
-- 
data PaymentMethodDetailsCard = PaymentMethodDetailsCard {
  -- | brand: Card brand. Can be \`amex\`, \`diners\`, \`discover\`, \`jcb\`, \`mastercard\`, \`unionpay\`, \`visa\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodDetailsCardBrand :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | checks: Check results by Card networks on Card address and CVC at time of payment.
  , paymentMethodDetailsCardChecks :: (GHC.Maybe.Maybe PaymentMethodDetailsCardChecks')
  -- | country: Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you\'ve collected.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , paymentMethodDetailsCardExpMonth :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , paymentMethodDetailsCardExpYear :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | fingerprint: Uniquely identifies this particular card number. You can use this attribute to check whether two customers who\'ve signed up with you are using the same card number, for example.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardFingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardFunding :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | installments: Installment details for this payment (Mexico only).
  -- 
  -- For more information, see the [installments integration guide](https:\/\/stripe.com\/docs\/payments\/installments).
  , paymentMethodDetailsCardInstallments :: (GHC.Maybe.Maybe PaymentMethodDetailsCardInstallments')
  -- | last4: The last four digits of the card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | network: Identifies which network this charge was processed on. Can be \`amex\`, \`diners\`, \`discover\`, \`interac\`, \`jcb\`, \`mastercard\`, \`unionpay\`, \`visa\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardNetwork :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | three_d_secure: Populated if this transaction used 3D Secure authentication.
  , paymentMethodDetailsCardThreeDSecure :: (GHC.Maybe.Maybe PaymentMethodDetailsCardThreeDSecure')
  -- | wallet: If this Card is part of a card wallet, this contains the details of the card wallet.
  , paymentMethodDetailsCardWallet :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWallet')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCard
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "brand" (paymentMethodDetailsCardBrand obj) : (Data.Aeson..=) "checks" (paymentMethodDetailsCardChecks obj) : (Data.Aeson..=) "country" (paymentMethodDetailsCardCountry obj) : (Data.Aeson..=) "exp_month" (paymentMethodDetailsCardExpMonth obj) : (Data.Aeson..=) "exp_year" (paymentMethodDetailsCardExpYear obj) : (Data.Aeson..=) "fingerprint" (paymentMethodDetailsCardFingerprint obj) : (Data.Aeson..=) "funding" (paymentMethodDetailsCardFunding obj) : (Data.Aeson..=) "installments" (paymentMethodDetailsCardInstallments obj) : (Data.Aeson..=) "last4" (paymentMethodDetailsCardLast4 obj) : (Data.Aeson..=) "network" (paymentMethodDetailsCardNetwork obj) : (Data.Aeson..=) "three_d_secure" (paymentMethodDetailsCardThreeDSecure obj) : (Data.Aeson..=) "wallet" (paymentMethodDetailsCardWallet obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "brand" (paymentMethodDetailsCardBrand obj) GHC.Base.<> ((Data.Aeson..=) "checks" (paymentMethodDetailsCardChecks obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodDetailsCardCountry obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (paymentMethodDetailsCardExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (paymentMethodDetailsCardExpYear obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (paymentMethodDetailsCardFingerprint obj) GHC.Base.<> ((Data.Aeson..=) "funding" (paymentMethodDetailsCardFunding obj) GHC.Base.<> ((Data.Aeson..=) "installments" (paymentMethodDetailsCardInstallments obj) GHC.Base.<> ((Data.Aeson..=) "last4" (paymentMethodDetailsCardLast4 obj) GHC.Base.<> ((Data.Aeson..=) "network" (paymentMethodDetailsCardNetwork obj) GHC.Base.<> ((Data.Aeson..=) "three_d_secure" (paymentMethodDetailsCardThreeDSecure obj) GHC.Base.<> (Data.Aeson..=) "wallet" (paymentMethodDetailsCardWallet obj))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCard
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCard" (\obj -> (((((((((((GHC.Base.pure PaymentMethodDetailsCard GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "checks")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "installments")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "network")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "three_d_secure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wallet"))
-- | Defines the data type for the schema payment_method_details_cardChecks\'
-- 
-- Check results by Card networks on Card address and CVC at time of payment.
data PaymentMethodDetailsCardChecks' = PaymentMethodDetailsCardChecks' {
  -- | address_line1_check: If a address line1 was provided, results of the check, one of \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodDetailsCardChecks'AddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_postal_code_check: If a address postal code was provided, results of the check, one of \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardChecks'AddressPostalCodeCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | cvc_check: If a CVC was provided, results of the check, one of \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardChecks'CvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardChecks'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address_line1_check" (paymentMethodDetailsCardChecks'AddressLine1Check obj) : (Data.Aeson..=) "address_postal_code_check" (paymentMethodDetailsCardChecks'AddressPostalCodeCheck obj) : (Data.Aeson..=) "cvc_check" (paymentMethodDetailsCardChecks'CvcCheck obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address_line1_check" (paymentMethodDetailsCardChecks'AddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_postal_code_check" (paymentMethodDetailsCardChecks'AddressPostalCodeCheck obj) GHC.Base.<> (Data.Aeson..=) "cvc_check" (paymentMethodDetailsCardChecks'CvcCheck obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardChecks'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardChecks'" (\obj -> ((GHC.Base.pure PaymentMethodDetailsCardChecks' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_postal_code_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check"))
-- | Defines the data type for the schema payment_method_details_cardInstallments\'
-- 
-- Installment details for this payment (Mexico only).
-- 
-- For more information, see the [installments integration guide](https:\\\/\\\/stripe.com\\\/docs\\\/payments\\\/installments).
data PaymentMethodDetailsCardInstallments' = PaymentMethodDetailsCardInstallments' {
  -- | plan: Installment plan selected for the payment.
  paymentMethodDetailsCardInstallments'Plan :: (GHC.Maybe.Maybe PaymentMethodDetailsCardInstallments'Plan')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardInstallments'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "plan" (paymentMethodDetailsCardInstallments'Plan obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "plan" (paymentMethodDetailsCardInstallments'Plan obj))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardInstallments'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardInstallments'" (\obj -> GHC.Base.pure PaymentMethodDetailsCardInstallments' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "plan"))
-- | Defines the data type for the schema payment_method_details_cardInstallments\'Plan\'
-- 
-- Installment plan selected for the payment.
data PaymentMethodDetailsCardInstallments'Plan' = PaymentMethodDetailsCardInstallments'Plan' {
  -- | count: For \`fixed_count\` installment plans, this is the number of installment payments your customer will make to their credit card.
  paymentMethodDetailsCardInstallments'Plan'Count :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | interval: For \`fixed_count\` installment plans, this is the interval between installment payments your customer will make to their credit card.
  -- One of \`month\`.
  , paymentMethodDetailsCardInstallments'Plan'Interval :: (GHC.Maybe.Maybe PaymentMethodDetailsCardInstallments'Plan'Interval')
  -- | type: Type of installment plan, one of \`fixed_count\`.
  , paymentMethodDetailsCardInstallments'Plan'Type :: (GHC.Maybe.Maybe PaymentMethodDetailsCardInstallments'Plan'Type')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardInstallments'Plan'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "count" (paymentMethodDetailsCardInstallments'Plan'Count obj) : (Data.Aeson..=) "interval" (paymentMethodDetailsCardInstallments'Plan'Interval obj) : (Data.Aeson..=) "type" (paymentMethodDetailsCardInstallments'Plan'Type obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "count" (paymentMethodDetailsCardInstallments'Plan'Count obj) GHC.Base.<> ((Data.Aeson..=) "interval" (paymentMethodDetailsCardInstallments'Plan'Interval obj) GHC.Base.<> (Data.Aeson..=) "type" (paymentMethodDetailsCardInstallments'Plan'Type obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardInstallments'Plan'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardInstallments'Plan'" (\obj -> ((GHC.Base.pure PaymentMethodDetailsCardInstallments'Plan' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "count")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the enum schema payment_method_details_cardInstallments\'Plan\'Interval\'
-- 
-- For \`fixed_count\` installment plans, this is the interval between installment payments your customer will make to their credit card.
-- One of \`month\`.
data PaymentMethodDetailsCardInstallments'Plan'Interval'
    = PaymentMethodDetailsCardInstallments'Plan'Interval'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodDetailsCardInstallments'Plan'Interval'EnumTyped GHC.Base.String
    | PaymentMethodDetailsCardInstallments'Plan'Interval'EnumStringMonth
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardInstallments'Plan'Interval'
    where toJSON (PaymentMethodDetailsCardInstallments'Plan'Interval'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardInstallments'Plan'Interval'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardInstallments'Plan'Interval'EnumStringMonth) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month"
instance Data.Aeson.FromJSON PaymentMethodDetailsCardInstallments'Plan'Interval'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month")
                                          then PaymentMethodDetailsCardInstallments'Plan'Interval'EnumStringMonth
                                          else PaymentMethodDetailsCardInstallments'Plan'Interval'EnumOther val)
-- | Defines the enum schema payment_method_details_cardInstallments\'Plan\'Type\'
-- 
-- Type of installment plan, one of \`fixed_count\`.
data PaymentMethodDetailsCardInstallments'Plan'Type'
    = PaymentMethodDetailsCardInstallments'Plan'Type'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodDetailsCardInstallments'Plan'Type'EnumTyped GHC.Base.String
    | PaymentMethodDetailsCardInstallments'Plan'Type'EnumStringFixedCount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardInstallments'Plan'Type'
    where toJSON (PaymentMethodDetailsCardInstallments'Plan'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardInstallments'Plan'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardInstallments'Plan'Type'EnumStringFixedCount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fixed_count"
instance Data.Aeson.FromJSON PaymentMethodDetailsCardInstallments'Plan'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fixed_count")
                                          then PaymentMethodDetailsCardInstallments'Plan'Type'EnumStringFixedCount
                                          else PaymentMethodDetailsCardInstallments'Plan'Type'EnumOther val)
-- | Defines the data type for the schema payment_method_details_cardThree_d_secure\'
-- 
-- Populated if this transaction used 3D Secure authentication.
data PaymentMethodDetailsCardThreeDSecure' = PaymentMethodDetailsCardThreeDSecure' {
  -- | authenticated: Whether or not authentication was performed. 3D Secure will succeed without authentication when the card is not enrolled.
  paymentMethodDetailsCardThreeDSecure'Authenticated :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | succeeded: Whether or not 3D Secure succeeded.
  , paymentMethodDetailsCardThreeDSecure'Succeeded :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | version: The version of 3D Secure that was used for this payment.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardThreeDSecure'Version :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardThreeDSecure'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "authenticated" (paymentMethodDetailsCardThreeDSecure'Authenticated obj) : (Data.Aeson..=) "succeeded" (paymentMethodDetailsCardThreeDSecure'Succeeded obj) : (Data.Aeson..=) "version" (paymentMethodDetailsCardThreeDSecure'Version obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "authenticated" (paymentMethodDetailsCardThreeDSecure'Authenticated obj) GHC.Base.<> ((Data.Aeson..=) "succeeded" (paymentMethodDetailsCardThreeDSecure'Succeeded obj) GHC.Base.<> (Data.Aeson..=) "version" (paymentMethodDetailsCardThreeDSecure'Version obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardThreeDSecure'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardThreeDSecure'" (\obj -> ((GHC.Base.pure PaymentMethodDetailsCardThreeDSecure' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "authenticated")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "succeeded")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "version"))
-- | Defines the data type for the schema payment_method_details_cardWallet\'
-- 
-- If this Card is part of a card wallet, this contains the details of the card wallet.
data PaymentMethodDetailsCardWallet' = PaymentMethodDetailsCardWallet' {
  -- | amex_express_checkout: 
  paymentMethodDetailsCardWallet'AmexExpressCheckout :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletAmexExpressCheckout)
  -- | apple_pay: 
  , paymentMethodDetailsCardWallet'ApplePay :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletApplePay)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWallet'DynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | google_pay: 
  , paymentMethodDetailsCardWallet'GooglePay :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletGooglePay)
  -- | masterpass: 
  , paymentMethodDetailsCardWallet'Masterpass :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletMasterpass)
  -- | samsung_pay: 
  , paymentMethodDetailsCardWallet'SamsungPay :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletSamsungPay)
  -- | type: The type of the card wallet, one of \`amex_express_checkout\`, \`apple_pay\`, \`google_pay\`, \`masterpass\`, \`samsung_pay\`, or \`visa_checkout\`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.
  , paymentMethodDetailsCardWallet'Type :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWallet'Type')
  -- | visa_checkout: 
  , paymentMethodDetailsCardWallet'VisaCheckout :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletVisaCheckout)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardWallet'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amex_express_checkout" (paymentMethodDetailsCardWallet'AmexExpressCheckout obj) : (Data.Aeson..=) "apple_pay" (paymentMethodDetailsCardWallet'ApplePay obj) : (Data.Aeson..=) "dynamic_last4" (paymentMethodDetailsCardWallet'DynamicLast4 obj) : (Data.Aeson..=) "google_pay" (paymentMethodDetailsCardWallet'GooglePay obj) : (Data.Aeson..=) "masterpass" (paymentMethodDetailsCardWallet'Masterpass obj) : (Data.Aeson..=) "samsung_pay" (paymentMethodDetailsCardWallet'SamsungPay obj) : (Data.Aeson..=) "type" (paymentMethodDetailsCardWallet'Type obj) : (Data.Aeson..=) "visa_checkout" (paymentMethodDetailsCardWallet'VisaCheckout obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amex_express_checkout" (paymentMethodDetailsCardWallet'AmexExpressCheckout obj) GHC.Base.<> ((Data.Aeson..=) "apple_pay" (paymentMethodDetailsCardWallet'ApplePay obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (paymentMethodDetailsCardWallet'DynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "google_pay" (paymentMethodDetailsCardWallet'GooglePay obj) GHC.Base.<> ((Data.Aeson..=) "masterpass" (paymentMethodDetailsCardWallet'Masterpass obj) GHC.Base.<> ((Data.Aeson..=) "samsung_pay" (paymentMethodDetailsCardWallet'SamsungPay obj) GHC.Base.<> ((Data.Aeson..=) "type" (paymentMethodDetailsCardWallet'Type obj) GHC.Base.<> (Data.Aeson..=) "visa_checkout" (paymentMethodDetailsCardWallet'VisaCheckout obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardWallet'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardWallet'" (\obj -> (((((((GHC.Base.pure PaymentMethodDetailsCardWallet' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amex_express_checkout")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "apple_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "google_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "masterpass")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "samsung_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "visa_checkout"))
-- | Defines the enum schema payment_method_details_cardWallet\'Type\'
-- 
-- The type of the card wallet, one of \`amex_express_checkout\`, \`apple_pay\`, \`google_pay\`, \`masterpass\`, \`samsung_pay\`, or \`visa_checkout\`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.
data PaymentMethodDetailsCardWallet'Type'
    = PaymentMethodDetailsCardWallet'Type'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodDetailsCardWallet'Type'EnumTyped GHC.Base.String
    | PaymentMethodDetailsCardWallet'Type'EnumStringAmexExpressCheckout
    | PaymentMethodDetailsCardWallet'Type'EnumStringApplePay
    | PaymentMethodDetailsCardWallet'Type'EnumStringGooglePay
    | PaymentMethodDetailsCardWallet'Type'EnumStringMasterpass
    | PaymentMethodDetailsCardWallet'Type'EnumStringSamsungPay
    | PaymentMethodDetailsCardWallet'Type'EnumStringVisaCheckout
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardWallet'Type'
    where toJSON (PaymentMethodDetailsCardWallet'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardWallet'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardWallet'Type'EnumStringAmexExpressCheckout) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amex_express_checkout"
          toJSON (PaymentMethodDetailsCardWallet'Type'EnumStringApplePay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "apple_pay"
          toJSON (PaymentMethodDetailsCardWallet'Type'EnumStringGooglePay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "google_pay"
          toJSON (PaymentMethodDetailsCardWallet'Type'EnumStringMasterpass) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masterpass"
          toJSON (PaymentMethodDetailsCardWallet'Type'EnumStringSamsungPay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "samsung_pay"
          toJSON (PaymentMethodDetailsCardWallet'Type'EnumStringVisaCheckout) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "visa_checkout"
instance Data.Aeson.FromJSON PaymentMethodDetailsCardWallet'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amex_express_checkout")
                                          then PaymentMethodDetailsCardWallet'Type'EnumStringAmexExpressCheckout
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "apple_pay")
                                                then PaymentMethodDetailsCardWallet'Type'EnumStringApplePay
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "google_pay")
                                                      then PaymentMethodDetailsCardWallet'Type'EnumStringGooglePay
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masterpass")
                                                            then PaymentMethodDetailsCardWallet'Type'EnumStringMasterpass
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "samsung_pay")
                                                                  then PaymentMethodDetailsCardWallet'Type'EnumStringSamsungPay
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "visa_checkout")
                                                                        then PaymentMethodDetailsCardWallet'Type'EnumStringVisaCheckout
                                                                        else PaymentMethodDetailsCardWallet'Type'EnumOther val)
-- | Defines the data type for the schema payment_method_details_card_installments
-- 
-- 
data PaymentMethodDetailsCardInstallments = PaymentMethodDetailsCardInstallments {
  -- | plan: Installment plan selected for the payment.
  paymentMethodDetailsCardInstallmentsPlan :: (GHC.Maybe.Maybe PaymentMethodDetailsCardInstallmentsPlan')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardInstallments
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "plan" (paymentMethodDetailsCardInstallmentsPlan obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "plan" (paymentMethodDetailsCardInstallmentsPlan obj))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardInstallments
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardInstallments" (\obj -> GHC.Base.pure PaymentMethodDetailsCardInstallments GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "plan"))
-- | Defines the data type for the schema payment_method_details_card_installmentsPlan\'
-- 
-- Installment plan selected for the payment.
data PaymentMethodDetailsCardInstallmentsPlan' = PaymentMethodDetailsCardInstallmentsPlan' {
  -- | count: For \`fixed_count\` installment plans, this is the number of installment payments your customer will make to their credit card.
  paymentMethodDetailsCardInstallmentsPlan'Count :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | interval: For \`fixed_count\` installment plans, this is the interval between installment payments your customer will make to their credit card.
  -- One of \`month\`.
  , paymentMethodDetailsCardInstallmentsPlan'Interval :: (GHC.Maybe.Maybe PaymentMethodDetailsCardInstallmentsPlan'Interval')
  -- | type: Type of installment plan, one of \`fixed_count\`.
  , paymentMethodDetailsCardInstallmentsPlan'Type :: (GHC.Maybe.Maybe PaymentMethodDetailsCardInstallmentsPlan'Type')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardInstallmentsPlan'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "count" (paymentMethodDetailsCardInstallmentsPlan'Count obj) : (Data.Aeson..=) "interval" (paymentMethodDetailsCardInstallmentsPlan'Interval obj) : (Data.Aeson..=) "type" (paymentMethodDetailsCardInstallmentsPlan'Type obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "count" (paymentMethodDetailsCardInstallmentsPlan'Count obj) GHC.Base.<> ((Data.Aeson..=) "interval" (paymentMethodDetailsCardInstallmentsPlan'Interval obj) GHC.Base.<> (Data.Aeson..=) "type" (paymentMethodDetailsCardInstallmentsPlan'Type obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardInstallmentsPlan'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardInstallmentsPlan'" (\obj -> ((GHC.Base.pure PaymentMethodDetailsCardInstallmentsPlan' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "count")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the enum schema payment_method_details_card_installmentsPlan\'Interval\'
-- 
-- For \`fixed_count\` installment plans, this is the interval between installment payments your customer will make to their credit card.
-- One of \`month\`.
data PaymentMethodDetailsCardInstallmentsPlan'Interval'
    = PaymentMethodDetailsCardInstallmentsPlan'Interval'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodDetailsCardInstallmentsPlan'Interval'EnumTyped GHC.Base.String
    | PaymentMethodDetailsCardInstallmentsPlan'Interval'EnumStringMonth
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardInstallmentsPlan'Interval'
    where toJSON (PaymentMethodDetailsCardInstallmentsPlan'Interval'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardInstallmentsPlan'Interval'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardInstallmentsPlan'Interval'EnumStringMonth) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month"
instance Data.Aeson.FromJSON PaymentMethodDetailsCardInstallmentsPlan'Interval'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month")
                                          then PaymentMethodDetailsCardInstallmentsPlan'Interval'EnumStringMonth
                                          else PaymentMethodDetailsCardInstallmentsPlan'Interval'EnumOther val)
-- | Defines the enum schema payment_method_details_card_installmentsPlan\'Type\'
-- 
-- Type of installment plan, one of \`fixed_count\`.
data PaymentMethodDetailsCardInstallmentsPlan'Type'
    = PaymentMethodDetailsCardInstallmentsPlan'Type'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodDetailsCardInstallmentsPlan'Type'EnumTyped GHC.Base.String
    | PaymentMethodDetailsCardInstallmentsPlan'Type'EnumStringFixedCount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardInstallmentsPlan'Type'
    where toJSON (PaymentMethodDetailsCardInstallmentsPlan'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardInstallmentsPlan'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardInstallmentsPlan'Type'EnumStringFixedCount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fixed_count"
instance Data.Aeson.FromJSON PaymentMethodDetailsCardInstallmentsPlan'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fixed_count")
                                          then PaymentMethodDetailsCardInstallmentsPlan'Type'EnumStringFixedCount
                                          else PaymentMethodDetailsCardInstallmentsPlan'Type'EnumOther val)
-- | Defines the data type for the schema payment_method_details_card_present
-- 
-- 
data PaymentMethodDetailsCardPresent = PaymentMethodDetailsCardPresent {
  -- | brand: Card brand. Can be \`amex\`, \`diners\`, \`discover\`, \`jcb\`, \`mastercard\`, \`unionpay\`, \`visa\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodDetailsCardPresentBrand :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you\'ve collected.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | emv_auth_data: Authorization response cryptogram.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentEmvAuthData :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , paymentMethodDetailsCardPresentExpMonth :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , paymentMethodDetailsCardPresentExpYear :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | fingerprint: Uniquely identifies this particular card number. You can use this attribute to check whether two customers who\'ve signed up with you are using the same card number, for example.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentFingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentFunding :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | generated_card: ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentGeneratedCard :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | last4: The last four digits of the card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | network: Identifies which network this charge was processed on. Can be \`amex\`, \`diners\`, \`discover\`, \`interac\`, \`jcb\`, \`mastercard\`, \`unionpay\`, \`visa\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentNetwork :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | read_method: How were card details read in this transaction. Can be contact_emv, contactless_emv, magnetic_stripe_fallback, magnetic_stripe_track2, or contactless_magstripe_mode
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentReadMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | receipt: A collection of fields required to be displayed on receipts. Only required for EMV transactions.
  , paymentMethodDetailsCardPresentReceipt :: (GHC.Maybe.Maybe PaymentMethodDetailsCardPresentReceipt')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardPresent
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "brand" (paymentMethodDetailsCardPresentBrand obj) : (Data.Aeson..=) "country" (paymentMethodDetailsCardPresentCountry obj) : (Data.Aeson..=) "emv_auth_data" (paymentMethodDetailsCardPresentEmvAuthData obj) : (Data.Aeson..=) "exp_month" (paymentMethodDetailsCardPresentExpMonth obj) : (Data.Aeson..=) "exp_year" (paymentMethodDetailsCardPresentExpYear obj) : (Data.Aeson..=) "fingerprint" (paymentMethodDetailsCardPresentFingerprint obj) : (Data.Aeson..=) "funding" (paymentMethodDetailsCardPresentFunding obj) : (Data.Aeson..=) "generated_card" (paymentMethodDetailsCardPresentGeneratedCard obj) : (Data.Aeson..=) "last4" (paymentMethodDetailsCardPresentLast4 obj) : (Data.Aeson..=) "network" (paymentMethodDetailsCardPresentNetwork obj) : (Data.Aeson..=) "read_method" (paymentMethodDetailsCardPresentReadMethod obj) : (Data.Aeson..=) "receipt" (paymentMethodDetailsCardPresentReceipt obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "brand" (paymentMethodDetailsCardPresentBrand obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodDetailsCardPresentCountry obj) GHC.Base.<> ((Data.Aeson..=) "emv_auth_data" (paymentMethodDetailsCardPresentEmvAuthData obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (paymentMethodDetailsCardPresentExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (paymentMethodDetailsCardPresentExpYear obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (paymentMethodDetailsCardPresentFingerprint obj) GHC.Base.<> ((Data.Aeson..=) "funding" (paymentMethodDetailsCardPresentFunding obj) GHC.Base.<> ((Data.Aeson..=) "generated_card" (paymentMethodDetailsCardPresentGeneratedCard obj) GHC.Base.<> ((Data.Aeson..=) "last4" (paymentMethodDetailsCardPresentLast4 obj) GHC.Base.<> ((Data.Aeson..=) "network" (paymentMethodDetailsCardPresentNetwork obj) GHC.Base.<> ((Data.Aeson..=) "read_method" (paymentMethodDetailsCardPresentReadMethod obj) GHC.Base.<> (Data.Aeson..=) "receipt" (paymentMethodDetailsCardPresentReceipt obj))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardPresent
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardPresent" (\obj -> (((((((((((GHC.Base.pure PaymentMethodDetailsCardPresent GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "emv_auth_data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "generated_card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "network")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "read_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receipt"))
-- | Defines the data type for the schema payment_method_details_card_presentReceipt\'
-- 
-- A collection of fields required to be displayed on receipts. Only required for EMV transactions.
data PaymentMethodDetailsCardPresentReceipt' = PaymentMethodDetailsCardPresentReceipt' {
  -- | application_cryptogram: EMV tag 9F26, cryptogram generated by the integrated circuit chip.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodDetailsCardPresentReceipt'ApplicationCryptogram :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | application_preferred_name: Mnenomic of the Application Identifier.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentReceipt'ApplicationPreferredName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | authorization_code: Identifier for this transaction.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentReceipt'AuthorizationCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | authorization_response_code: EMV tag 8A. A code returned by the card issuer.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentReceipt'AuthorizationResponseCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | cardholder_verification_method: How the cardholder verified ownership of the card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentReceipt'CardholderVerificationMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | dedicated_file_name: EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentReceipt'DedicatedFileName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | terminal_verification_results: The outcome of a series of EMV functions performed by the card reader.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentReceipt'TerminalVerificationResults :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | transaction_status_information: An indication of various EMV functions performed during the transaction.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardPresentReceipt'TransactionStatusInformation :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardPresentReceipt'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "application_cryptogram" (paymentMethodDetailsCardPresentReceipt'ApplicationCryptogram obj) : (Data.Aeson..=) "application_preferred_name" (paymentMethodDetailsCardPresentReceipt'ApplicationPreferredName obj) : (Data.Aeson..=) "authorization_code" (paymentMethodDetailsCardPresentReceipt'AuthorizationCode obj) : (Data.Aeson..=) "authorization_response_code" (paymentMethodDetailsCardPresentReceipt'AuthorizationResponseCode obj) : (Data.Aeson..=) "cardholder_verification_method" (paymentMethodDetailsCardPresentReceipt'CardholderVerificationMethod obj) : (Data.Aeson..=) "dedicated_file_name" (paymentMethodDetailsCardPresentReceipt'DedicatedFileName obj) : (Data.Aeson..=) "terminal_verification_results" (paymentMethodDetailsCardPresentReceipt'TerminalVerificationResults obj) : (Data.Aeson..=) "transaction_status_information" (paymentMethodDetailsCardPresentReceipt'TransactionStatusInformation obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "application_cryptogram" (paymentMethodDetailsCardPresentReceipt'ApplicationCryptogram obj) GHC.Base.<> ((Data.Aeson..=) "application_preferred_name" (paymentMethodDetailsCardPresentReceipt'ApplicationPreferredName obj) GHC.Base.<> ((Data.Aeson..=) "authorization_code" (paymentMethodDetailsCardPresentReceipt'AuthorizationCode obj) GHC.Base.<> ((Data.Aeson..=) "authorization_response_code" (paymentMethodDetailsCardPresentReceipt'AuthorizationResponseCode obj) GHC.Base.<> ((Data.Aeson..=) "cardholder_verification_method" (paymentMethodDetailsCardPresentReceipt'CardholderVerificationMethod obj) GHC.Base.<> ((Data.Aeson..=) "dedicated_file_name" (paymentMethodDetailsCardPresentReceipt'DedicatedFileName obj) GHC.Base.<> ((Data.Aeson..=) "terminal_verification_results" (paymentMethodDetailsCardPresentReceipt'TerminalVerificationResults obj) GHC.Base.<> (Data.Aeson..=) "transaction_status_information" (paymentMethodDetailsCardPresentReceipt'TransactionStatusInformation obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardPresentReceipt'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardPresentReceipt'" (\obj -> (((((((GHC.Base.pure PaymentMethodDetailsCardPresentReceipt' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application_cryptogram")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application_preferred_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "authorization_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "authorization_response_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cardholder_verification_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dedicated_file_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "terminal_verification_results")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transaction_status_information"))
-- | Defines the data type for the schema payment_method_details_card_wallet
-- 
-- 
data PaymentMethodDetailsCardWallet = PaymentMethodDetailsCardWallet {
  -- | amex_express_checkout: 
  paymentMethodDetailsCardWalletAmexExpressCheckout :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletAmexExpressCheckout)
  -- | apple_pay: 
  , paymentMethodDetailsCardWalletApplePay :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletApplePay)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletDynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | google_pay: 
  , paymentMethodDetailsCardWalletGooglePay :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletGooglePay)
  -- | masterpass: 
  , paymentMethodDetailsCardWalletMasterpass :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletMasterpass)
  -- | samsung_pay: 
  , paymentMethodDetailsCardWalletSamsungPay :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletSamsungPay)
  -- | type: The type of the card wallet, one of \`amex_express_checkout\`, \`apple_pay\`, \`google_pay\`, \`masterpass\`, \`samsung_pay\`, or \`visa_checkout\`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.
  , paymentMethodDetailsCardWalletType :: PaymentMethodDetailsCardWalletType'
  -- | visa_checkout: 
  , paymentMethodDetailsCardWalletVisaCheckout :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletVisaCheckout)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardWallet
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amex_express_checkout" (paymentMethodDetailsCardWalletAmexExpressCheckout obj) : (Data.Aeson..=) "apple_pay" (paymentMethodDetailsCardWalletApplePay obj) : (Data.Aeson..=) "dynamic_last4" (paymentMethodDetailsCardWalletDynamicLast4 obj) : (Data.Aeson..=) "google_pay" (paymentMethodDetailsCardWalletGooglePay obj) : (Data.Aeson..=) "masterpass" (paymentMethodDetailsCardWalletMasterpass obj) : (Data.Aeson..=) "samsung_pay" (paymentMethodDetailsCardWalletSamsungPay obj) : (Data.Aeson..=) "type" (paymentMethodDetailsCardWalletType obj) : (Data.Aeson..=) "visa_checkout" (paymentMethodDetailsCardWalletVisaCheckout obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amex_express_checkout" (paymentMethodDetailsCardWalletAmexExpressCheckout obj) GHC.Base.<> ((Data.Aeson..=) "apple_pay" (paymentMethodDetailsCardWalletApplePay obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (paymentMethodDetailsCardWalletDynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "google_pay" (paymentMethodDetailsCardWalletGooglePay obj) GHC.Base.<> ((Data.Aeson..=) "masterpass" (paymentMethodDetailsCardWalletMasterpass obj) GHC.Base.<> ((Data.Aeson..=) "samsung_pay" (paymentMethodDetailsCardWalletSamsungPay obj) GHC.Base.<> ((Data.Aeson..=) "type" (paymentMethodDetailsCardWalletType obj) GHC.Base.<> (Data.Aeson..=) "visa_checkout" (paymentMethodDetailsCardWalletVisaCheckout obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardWallet
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardWallet" (\obj -> (((((((GHC.Base.pure PaymentMethodDetailsCardWallet GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amex_express_checkout")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "apple_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "google_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "masterpass")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "samsung_pay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "visa_checkout"))
-- | Defines the enum schema payment_method_details_card_walletType\'
-- 
-- The type of the card wallet, one of \`amex_express_checkout\`, \`apple_pay\`, \`google_pay\`, \`masterpass\`, \`samsung_pay\`, or \`visa_checkout\`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.
data PaymentMethodDetailsCardWalletType'
    = PaymentMethodDetailsCardWalletType'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodDetailsCardWalletType'EnumTyped GHC.Base.String
    | PaymentMethodDetailsCardWalletType'EnumStringAmexExpressCheckout
    | PaymentMethodDetailsCardWalletType'EnumStringApplePay
    | PaymentMethodDetailsCardWalletType'EnumStringGooglePay
    | PaymentMethodDetailsCardWalletType'EnumStringMasterpass
    | PaymentMethodDetailsCardWalletType'EnumStringSamsungPay
    | PaymentMethodDetailsCardWalletType'EnumStringVisaCheckout
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardWalletType'
    where toJSON (PaymentMethodDetailsCardWalletType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardWalletType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodDetailsCardWalletType'EnumStringAmexExpressCheckout) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amex_express_checkout"
          toJSON (PaymentMethodDetailsCardWalletType'EnumStringApplePay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "apple_pay"
          toJSON (PaymentMethodDetailsCardWalletType'EnumStringGooglePay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "google_pay"
          toJSON (PaymentMethodDetailsCardWalletType'EnumStringMasterpass) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masterpass"
          toJSON (PaymentMethodDetailsCardWalletType'EnumStringSamsungPay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "samsung_pay"
          toJSON (PaymentMethodDetailsCardWalletType'EnumStringVisaCheckout) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "visa_checkout"
instance Data.Aeson.FromJSON PaymentMethodDetailsCardWalletType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "amex_express_checkout")
                                          then PaymentMethodDetailsCardWalletType'EnumStringAmexExpressCheckout
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "apple_pay")
                                                then PaymentMethodDetailsCardWalletType'EnumStringApplePay
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "google_pay")
                                                      then PaymentMethodDetailsCardWalletType'EnumStringGooglePay
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "masterpass")
                                                            then PaymentMethodDetailsCardWalletType'EnumStringMasterpass
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "samsung_pay")
                                                                  then PaymentMethodDetailsCardWalletType'EnumStringSamsungPay
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "visa_checkout")
                                                                        then PaymentMethodDetailsCardWalletType'EnumStringVisaCheckout
                                                                        else PaymentMethodDetailsCardWalletType'EnumOther val)
-- | Defines the data type for the schema payment_method_details_card_wallet_masterpass
-- 
-- 
data PaymentMethodDetailsCardWalletMasterpass = PaymentMethodDetailsCardWalletMasterpass {
  -- | billing_address: Owner\'s verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  paymentMethodDetailsCardWalletMasterpassBillingAddress :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletMasterpassBillingAddress')
  -- | email: Owner\'s verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | shipping_address: Owner\'s verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , paymentMethodDetailsCardWalletMasterpassShippingAddress :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletMasterpassShippingAddress')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardWalletMasterpass
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_address" (paymentMethodDetailsCardWalletMasterpassBillingAddress obj) : (Data.Aeson..=) "email" (paymentMethodDetailsCardWalletMasterpassEmail obj) : (Data.Aeson..=) "name" (paymentMethodDetailsCardWalletMasterpassName obj) : (Data.Aeson..=) "shipping_address" (paymentMethodDetailsCardWalletMasterpassShippingAddress obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_address" (paymentMethodDetailsCardWalletMasterpassBillingAddress obj) GHC.Base.<> ((Data.Aeson..=) "email" (paymentMethodDetailsCardWalletMasterpassEmail obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentMethodDetailsCardWalletMasterpassName obj) GHC.Base.<> (Data.Aeson..=) "shipping_address" (paymentMethodDetailsCardWalletMasterpassShippingAddress obj))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardWalletMasterpass
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardWalletMasterpass" (\obj -> (((GHC.Base.pure PaymentMethodDetailsCardWalletMasterpass GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping_address"))
-- | Defines the data type for the schema payment_method_details_card_wallet_masterpassBilling_address\'
-- 
-- Owner\\\'s verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentMethodDetailsCardWalletMasterpassBillingAddress' = PaymentMethodDetailsCardWalletMasterpassBillingAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodDetailsCardWalletMasterpassBillingAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassBillingAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassBillingAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassBillingAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassBillingAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassBillingAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardWalletMasterpassBillingAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentMethodDetailsCardWalletMasterpassBillingAddress'City obj) : (Data.Aeson..=) "country" (paymentMethodDetailsCardWalletMasterpassBillingAddress'Country obj) : (Data.Aeson..=) "line1" (paymentMethodDetailsCardWalletMasterpassBillingAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentMethodDetailsCardWalletMasterpassBillingAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentMethodDetailsCardWalletMasterpassBillingAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentMethodDetailsCardWalletMasterpassBillingAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentMethodDetailsCardWalletMasterpassBillingAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodDetailsCardWalletMasterpassBillingAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentMethodDetailsCardWalletMasterpassBillingAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentMethodDetailsCardWalletMasterpassBillingAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentMethodDetailsCardWalletMasterpassBillingAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentMethodDetailsCardWalletMasterpassBillingAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardWalletMasterpassBillingAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardWalletMasterpassBillingAddress'" (\obj -> (((((GHC.Base.pure PaymentMethodDetailsCardWalletMasterpassBillingAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema payment_method_details_card_wallet_masterpassShipping_address\'
-- 
-- Owner\\\'s verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentMethodDetailsCardWalletMasterpassShippingAddress' = PaymentMethodDetailsCardWalletMasterpassShippingAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodDetailsCardWalletMasterpassShippingAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassShippingAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassShippingAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassShippingAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassShippingAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletMasterpassShippingAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardWalletMasterpassShippingAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentMethodDetailsCardWalletMasterpassShippingAddress'City obj) : (Data.Aeson..=) "country" (paymentMethodDetailsCardWalletMasterpassShippingAddress'Country obj) : (Data.Aeson..=) "line1" (paymentMethodDetailsCardWalletMasterpassShippingAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentMethodDetailsCardWalletMasterpassShippingAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentMethodDetailsCardWalletMasterpassShippingAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentMethodDetailsCardWalletMasterpassShippingAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentMethodDetailsCardWalletMasterpassShippingAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodDetailsCardWalletMasterpassShippingAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentMethodDetailsCardWalletMasterpassShippingAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentMethodDetailsCardWalletMasterpassShippingAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentMethodDetailsCardWalletMasterpassShippingAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentMethodDetailsCardWalletMasterpassShippingAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardWalletMasterpassShippingAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardWalletMasterpassShippingAddress'" (\obj -> (((((GHC.Base.pure PaymentMethodDetailsCardWalletMasterpassShippingAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema payment_method_details_card_wallet_visa_checkout
-- 
-- 
data PaymentMethodDetailsCardWalletVisaCheckout = PaymentMethodDetailsCardWalletVisaCheckout {
  -- | billing_address: Owner\'s verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  paymentMethodDetailsCardWalletVisaCheckoutBillingAddress :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletVisaCheckoutBillingAddress')
  -- | email: Owner\'s verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | shipping_address: Owner\'s verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , paymentMethodDetailsCardWalletVisaCheckoutShippingAddress :: (GHC.Maybe.Maybe PaymentMethodDetailsCardWalletVisaCheckoutShippingAddress')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardWalletVisaCheckout
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_address" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress obj) : (Data.Aeson..=) "email" (paymentMethodDetailsCardWalletVisaCheckoutEmail obj) : (Data.Aeson..=) "name" (paymentMethodDetailsCardWalletVisaCheckoutName obj) : (Data.Aeson..=) "shipping_address" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_address" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress obj) GHC.Base.<> ((Data.Aeson..=) "email" (paymentMethodDetailsCardWalletVisaCheckoutEmail obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentMethodDetailsCardWalletVisaCheckoutName obj) GHC.Base.<> (Data.Aeson..=) "shipping_address" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress obj))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardWalletVisaCheckout
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardWalletVisaCheckout" (\obj -> (((GHC.Base.pure PaymentMethodDetailsCardWalletVisaCheckout GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shipping_address"))
-- | Defines the data type for the schema payment_method_details_card_wallet_visa_checkoutBilling_address\'
-- 
-- Owner\\\'s verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentMethodDetailsCardWalletVisaCheckoutBillingAddress' = PaymentMethodDetailsCardWalletVisaCheckoutBillingAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardWalletVisaCheckoutBillingAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'City obj) : (Data.Aeson..=) "country" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'Country obj) : (Data.Aeson..=) "line1" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentMethodDetailsCardWalletVisaCheckoutBillingAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardWalletVisaCheckoutBillingAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardWalletVisaCheckoutBillingAddress'" (\obj -> (((((GHC.Base.pure PaymentMethodDetailsCardWalletVisaCheckoutBillingAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema payment_method_details_card_wallet_visa_checkoutShipping_address\'
-- 
-- Owner\\\'s verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentMethodDetailsCardWalletVisaCheckoutShippingAddress' = PaymentMethodDetailsCardWalletVisaCheckoutShippingAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodDetailsCardWalletVisaCheckoutShippingAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'City obj) : (Data.Aeson..=) "country" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'Country obj) : (Data.Aeson..=) "line1" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentMethodDetailsCardWalletVisaCheckoutShippingAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsCardWalletVisaCheckoutShippingAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodDetailsCardWalletVisaCheckoutShippingAddress'" (\obj -> (((((GHC.Base.pure PaymentMethodDetailsCardWalletVisaCheckoutShippingAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema payment_method_options_card_installments
-- 
-- 
data PaymentMethodOptionsCardInstallments = PaymentMethodOptionsCardInstallments {
  -- | available_plans: Installment plans that may be selected for this PaymentIntent.
  paymentMethodOptionsCardInstallmentsAvailablePlans :: (GHC.Maybe.Maybe ([] PaymentMethodDetailsCardInstallmentsPlan))
  -- | enabled: Whether Installments are enabled for this PaymentIntent.
  , paymentMethodOptionsCardInstallmentsEnabled :: GHC.Types.Bool
  -- | plan: Installment plan selected for this PaymentIntent.
  , paymentMethodOptionsCardInstallmentsPlan :: (GHC.Maybe.Maybe PaymentMethodOptionsCardInstallmentsPlan')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodOptionsCardInstallments
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "available_plans" (paymentMethodOptionsCardInstallmentsAvailablePlans obj) : (Data.Aeson..=) "enabled" (paymentMethodOptionsCardInstallmentsEnabled obj) : (Data.Aeson..=) "plan" (paymentMethodOptionsCardInstallmentsPlan obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "available_plans" (paymentMethodOptionsCardInstallmentsAvailablePlans obj) GHC.Base.<> ((Data.Aeson..=) "enabled" (paymentMethodOptionsCardInstallmentsEnabled obj) GHC.Base.<> (Data.Aeson..=) "plan" (paymentMethodOptionsCardInstallmentsPlan obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodOptionsCardInstallments
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodOptionsCardInstallments" (\obj -> ((GHC.Base.pure PaymentMethodOptionsCardInstallments GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_plans")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "enabled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "plan"))
-- | Defines the data type for the schema payment_method_options_card_installmentsPlan\'
-- 
-- Installment plan selected for this PaymentIntent.
data PaymentMethodOptionsCardInstallmentsPlan' = PaymentMethodOptionsCardInstallmentsPlan' {
  -- | count: For \`fixed_count\` installment plans, this is the number of installment payments your customer will make to their credit card.
  paymentMethodOptionsCardInstallmentsPlan'Count :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | interval: For \`fixed_count\` installment plans, this is the interval between installment payments your customer will make to their credit card.
  -- One of \`month\`.
  , paymentMethodOptionsCardInstallmentsPlan'Interval :: (GHC.Maybe.Maybe PaymentMethodOptionsCardInstallmentsPlan'Interval')
  -- | type: Type of installment plan, one of \`fixed_count\`.
  , paymentMethodOptionsCardInstallmentsPlan'Type :: (GHC.Maybe.Maybe PaymentMethodOptionsCardInstallmentsPlan'Type')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodOptionsCardInstallmentsPlan'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "count" (paymentMethodOptionsCardInstallmentsPlan'Count obj) : (Data.Aeson..=) "interval" (paymentMethodOptionsCardInstallmentsPlan'Interval obj) : (Data.Aeson..=) "type" (paymentMethodOptionsCardInstallmentsPlan'Type obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "count" (paymentMethodOptionsCardInstallmentsPlan'Count obj) GHC.Base.<> ((Data.Aeson..=) "interval" (paymentMethodOptionsCardInstallmentsPlan'Interval obj) GHC.Base.<> (Data.Aeson..=) "type" (paymentMethodOptionsCardInstallmentsPlan'Type obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodOptionsCardInstallmentsPlan'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentMethodOptionsCardInstallmentsPlan'" (\obj -> ((GHC.Base.pure PaymentMethodOptionsCardInstallmentsPlan' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "count")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the enum schema payment_method_options_card_installmentsPlan\'Interval\'
-- 
-- For \`fixed_count\` installment plans, this is the interval between installment payments your customer will make to their credit card.
-- One of \`month\`.
data PaymentMethodOptionsCardInstallmentsPlan'Interval'
    = PaymentMethodOptionsCardInstallmentsPlan'Interval'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodOptionsCardInstallmentsPlan'Interval'EnumTyped GHC.Base.String
    | PaymentMethodOptionsCardInstallmentsPlan'Interval'EnumStringMonth
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodOptionsCardInstallmentsPlan'Interval'
    where toJSON (PaymentMethodOptionsCardInstallmentsPlan'Interval'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodOptionsCardInstallmentsPlan'Interval'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodOptionsCardInstallmentsPlan'Interval'EnumStringMonth) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month"
instance Data.Aeson.FromJSON PaymentMethodOptionsCardInstallmentsPlan'Interval'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month")
                                          then PaymentMethodOptionsCardInstallmentsPlan'Interval'EnumStringMonth
                                          else PaymentMethodOptionsCardInstallmentsPlan'Interval'EnumOther val)
-- | Defines the enum schema payment_method_options_card_installmentsPlan\'Type\'
-- 
-- Type of installment plan, one of \`fixed_count\`.
data PaymentMethodOptionsCardInstallmentsPlan'Type'
    = PaymentMethodOptionsCardInstallmentsPlan'Type'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentMethodOptionsCardInstallmentsPlan'Type'EnumTyped GHC.Base.String
    | PaymentMethodOptionsCardInstallmentsPlan'Type'EnumStringFixedCount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentMethodOptionsCardInstallmentsPlan'Type'
    where toJSON (PaymentMethodOptionsCardInstallmentsPlan'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodOptionsCardInstallmentsPlan'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentMethodOptionsCardInstallmentsPlan'Type'EnumStringFixedCount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fixed_count"
instance Data.Aeson.FromJSON PaymentMethodOptionsCardInstallmentsPlan'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "fixed_count")
                                          then PaymentMethodOptionsCardInstallmentsPlan'Type'EnumStringFixedCount
                                          else PaymentMethodOptionsCardInstallmentsPlan'Type'EnumOther val)
-- | Defines the data type for the schema payment_source
-- 
-- 
data PaymentSource = PaymentSource {
  -- | account: The ID of the account that the bank account is associated with.
  paymentSourceAccount :: (GHC.Maybe.Maybe PaymentSourceAccount'Variants)
  -- | account_holder_name: The name of the person or business that owns the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceAccountHolderName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceAccountHolderType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ach_credit_transfer
  , paymentSourceAchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer)
  -- | ach_debit
  , paymentSourceAchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit)
  -- | active: True when this bitcoin receiver has received a non-zero amount of bitcoin.
  , paymentSourceActive :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | address_city: City\/District\/Suburb\/Town\/Village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceAddressCity :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_country: Billing address country, if provided when creating card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceAddressCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceAddressLine1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceAddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceAddressLine2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_state: State\/County\/Province\/Region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceAddressState :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceAddressZip :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceAddressZipCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | alipay
  , paymentSourceAlipay :: (GHC.Maybe.Maybe SourceTypeAlipay)
  -- | amount: The amount of \`currency\` that you are collecting as payment.
  , paymentSourceAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | amount_received: The amount of \`currency\` to which \`bitcoin_amount_received\` has been converted.
  , paymentSourceAmountReceived :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | available_payout_methods: A set of available payout methods for this card. Will be either \`[\"standard\"]\` or \`[\"standard\", \"instant\"]\`. Only values from this set should be passed as the \`method\` when creating a transfer.
  , paymentSourceAvailablePayoutMethods :: (GHC.Maybe.Maybe ([] PaymentSourceAvailablePayoutMethods'))
  -- | bancontact
  , paymentSourceBancontact :: (GHC.Maybe.Maybe SourceTypeBancontact)
  -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBankName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | bitcoin_amount: The amount of bitcoin that the customer should send to fill the receiver. The \`bitcoin_amount\` is denominated in Satoshi: there are 10^8 Satoshi in one bitcoin.
  , paymentSourceBitcoinAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | bitcoin_amount_received: The amount of bitcoin that has been sent by the customer to this receiver.
  , paymentSourceBitcoinAmountReceived :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | bitcoin_uri: This URI can be displayed to the customer as a clickable link (to activate their bitcoin client) or as a QR code (for mobile wallets).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBitcoinUri :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBrand :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | business_profile: Business information about the account.
  , paymentSourceBusinessProfile :: (GHC.Maybe.Maybe PaymentSourceBusinessProfile')
  -- | business_type: The business type.
  , paymentSourceBusinessType :: (GHC.Maybe.Maybe PaymentSourceBusinessType')
  -- | capabilities: 
  , paymentSourceCapabilities :: (GHC.Maybe.Maybe AccountCapabilities)
  -- | card
  , paymentSourceCard :: (GHC.Maybe.Maybe SourceTypeCard)
  -- | card_present
  , paymentSourceCardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent)
  -- | charges_enabled: Whether the account can create live charges.
  , paymentSourceChargesEnabled :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceClientSecret :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | code_verification: 
  , paymentSourceCodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow)
  -- | company: 
  , paymentSourceCompany :: (GHC.Maybe.Maybe LegalEntityCompany)
  -- | country: The account\'s country.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , paymentSourceCreated :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  , paymentSourceCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The ID of the customer associated with this Alipay Account.
  , paymentSourceCustomer :: (GHC.Maybe.Maybe PaymentSourceCustomer'Variants)
  -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceCvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_currency: Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account\'s country](https:\/\/stripe.com\/docs\/payouts).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceDefaultCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_for_currency: Whether this bank account is the default external account for its currency.
  , paymentSourceDefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | details_submitted: Whether account details have been submitted. Standard accounts cannot receive payouts before this is true.
  , paymentSourceDetailsSubmitted :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceDynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | email: The primary user\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | eps
  , paymentSourceEps :: (GHC.Maybe.Maybe SourceTypeEps)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , paymentSourceExpMonth :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , paymentSourceExpYear :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | external_accounts: External accounts (bank accounts and debit cards) currently attached to this account
  , paymentSourceExternalAccounts :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts')
  -- | filled: This flag is initially false and updates to true when the customer sends the \`bitcoin_amount\` to this receiver.
  , paymentSourceFilled :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | fingerprint: Uniquely identifies the account and will be the same across all Alipay account objects that are linked to the same Alipay account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceFingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | flow: The authentication \`flow\` of the source. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceFlow :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceFunding :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | giropay
  , paymentSourceGiropay :: (GHC.Maybe.Maybe SourceTypeGiropay)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceId :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ideal
  , paymentSourceIdeal :: (GHC.Maybe.Maybe SourceTypeIdeal)
  -- | inbound_address: A bitcoin address that is specific to this receiver. The customer can send bitcoin to this address to fill the receiver.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceInboundAddress :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | individual: This is an object representing a person associated with a Stripe account.
  -- 
  -- Related guide: [Handling Identity Verification with the API](https:\/\/stripe.com\/docs\/connect\/identity-verification-api\#person-information).
  , paymentSourceIndividual :: (GHC.Maybe.Maybe Person)
  -- | klarna
  , paymentSourceKlarna :: (GHC.Maybe.Maybe SourceTypeKlarna)
  -- | last4: The last four digits of the bank account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , paymentSourceLivemode :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , paymentSourceMetadata :: (GHC.Maybe.Maybe PaymentSourceMetadata')
  -- | multibanco
  , paymentSourceMultibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco)
  -- | name: Cardholder name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , paymentSourceObject :: (GHC.Maybe.Maybe PaymentSourceObject')
  -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
  , paymentSourceOwner :: (GHC.Maybe.Maybe PaymentSourceOwner')
  -- | p24
  , paymentSourceP24 :: (GHC.Maybe.Maybe SourceTypeP24)
  -- | payment: The ID of the payment created from the receiver, if any. Hidden when viewing the receiver with a publishable key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourcePayment :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | payment_amount: If the Alipay account object is not reusable, the exact amount that you can create a charge for.
  , paymentSourcePaymentAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | payment_currency: If the Alipay account object is not reusable, the exact currency that you can create a charge for.
  , paymentSourcePaymentCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | payouts_enabled: Whether Stripe can send payouts to this account.
  , paymentSourcePayoutsEnabled :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | receiver: 
  , paymentSourceReceiver :: (GHC.Maybe.Maybe SourceReceiverFlow)
  -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
  , paymentSourceRecipient :: (GHC.Maybe.Maybe PaymentSourceRecipient'Variants)
  -- | redirect: 
  , paymentSourceRedirect :: (GHC.Maybe.Maybe SourceRedirectFlow)
  -- | refund_address: The refund address of this bitcoin receiver.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceRefundAddress :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | requirements: 
  , paymentSourceRequirements :: (GHC.Maybe.Maybe AccountRequirements)
  -- | reusable: True if you can create multiple payments using this account. If the account is reusable, then you can freely choose the amount of each payment.
  , paymentSourceReusable :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | routing_number: The routing transit number for the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceRoutingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | sepa_debit
  , paymentSourceSepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit)
  -- | settings: Options for customizing how the account functions within Stripe.
  , paymentSourceSettings :: (GHC.Maybe.Maybe PaymentSourceSettings')
  -- | sofort
  , paymentSourceSofort :: (GHC.Maybe.Maybe SourceTypeSofort)
  -- | source_order: 
  , paymentSourceSourceOrder :: (GHC.Maybe.Maybe SourceOrder)
  -- | statement_descriptor: Extra information about a source. This will appear on your customer\'s statement every time you charge the source.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceStatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
  -- 
  -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceStatus :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | three_d_secure
  , paymentSourceThreeDSecure :: (GHC.Maybe.Maybe SourceTypeThreeDSecure)
  -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`amex_express_checkout\`, \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceTokenizationMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | tos_acceptance: 
  , paymentSourceTosAcceptance :: (GHC.Maybe.Maybe AccountTosAcceptance)
  -- | transactions: A list with one entry for each time that the customer sent bitcoin to the receiver. Hidden when viewing the receiver with a publishable key.
  , paymentSourceTransactions :: (GHC.Maybe.Maybe PaymentSourceTransactions')
  -- | type: The Stripe account type. Can be \`standard\`, \`express\`, or \`custom\`.
  , paymentSourceType :: (GHC.Maybe.Maybe PaymentSourceType')
  -- | uncaptured_funds: This receiver contains uncaptured funds that can be used for a payment or refunded.
  , paymentSourceUncapturedFunds :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | usage: Either \`reusable\` or \`single_use\`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceUsage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | used: Whether this Alipay account object has ever been used for a payment.
  , paymentSourceUsed :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | used_for_payment: Indicate if this source is used for payment.
  , paymentSourceUsedForPayment :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | username: The username for the Alipay account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceUsername :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | wechat
  , paymentSourceWechat :: (GHC.Maybe.Maybe SourceTypeWechat)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSource
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (paymentSourceAccount obj) : (Data.Aeson..=) "account_holder_name" (paymentSourceAccountHolderName obj) : (Data.Aeson..=) "account_holder_type" (paymentSourceAccountHolderType obj) : (Data.Aeson..=) "ach_credit_transfer" (paymentSourceAchCreditTransfer obj) : (Data.Aeson..=) "ach_debit" (paymentSourceAchDebit obj) : (Data.Aeson..=) "active" (paymentSourceActive obj) : (Data.Aeson..=) "address_city" (paymentSourceAddressCity obj) : (Data.Aeson..=) "address_country" (paymentSourceAddressCountry obj) : (Data.Aeson..=) "address_line1" (paymentSourceAddressLine1 obj) : (Data.Aeson..=) "address_line1_check" (paymentSourceAddressLine1Check obj) : (Data.Aeson..=) "address_line2" (paymentSourceAddressLine2 obj) : (Data.Aeson..=) "address_state" (paymentSourceAddressState obj) : (Data.Aeson..=) "address_zip" (paymentSourceAddressZip obj) : (Data.Aeson..=) "address_zip_check" (paymentSourceAddressZipCheck obj) : (Data.Aeson..=) "alipay" (paymentSourceAlipay obj) : (Data.Aeson..=) "amount" (paymentSourceAmount obj) : (Data.Aeson..=) "amount_received" (paymentSourceAmountReceived obj) : (Data.Aeson..=) "available_payout_methods" (paymentSourceAvailablePayoutMethods obj) : (Data.Aeson..=) "bancontact" (paymentSourceBancontact obj) : (Data.Aeson..=) "bank_name" (paymentSourceBankName obj) : (Data.Aeson..=) "bitcoin_amount" (paymentSourceBitcoinAmount obj) : (Data.Aeson..=) "bitcoin_amount_received" (paymentSourceBitcoinAmountReceived obj) : (Data.Aeson..=) "bitcoin_uri" (paymentSourceBitcoinUri obj) : (Data.Aeson..=) "brand" (paymentSourceBrand obj) : (Data.Aeson..=) "business_profile" (paymentSourceBusinessProfile obj) : (Data.Aeson..=) "business_type" (paymentSourceBusinessType obj) : (Data.Aeson..=) "capabilities" (paymentSourceCapabilities obj) : (Data.Aeson..=) "card" (paymentSourceCard obj) : (Data.Aeson..=) "card_present" (paymentSourceCardPresent obj) : (Data.Aeson..=) "charges_enabled" (paymentSourceChargesEnabled obj) : (Data.Aeson..=) "client_secret" (paymentSourceClientSecret obj) : (Data.Aeson..=) "code_verification" (paymentSourceCodeVerification obj) : (Data.Aeson..=) "company" (paymentSourceCompany obj) : (Data.Aeson..=) "country" (paymentSourceCountry obj) : (Data.Aeson..=) "created" (paymentSourceCreated obj) : (Data.Aeson..=) "currency" (paymentSourceCurrency obj) : (Data.Aeson..=) "customer" (paymentSourceCustomer obj) : (Data.Aeson..=) "cvc_check" (paymentSourceCvcCheck obj) : (Data.Aeson..=) "default_currency" (paymentSourceDefaultCurrency obj) : (Data.Aeson..=) "default_for_currency" (paymentSourceDefaultForCurrency obj) : (Data.Aeson..=) "description" (paymentSourceDescription obj) : (Data.Aeson..=) "details_submitted" (paymentSourceDetailsSubmitted obj) : (Data.Aeson..=) "dynamic_last4" (paymentSourceDynamicLast4 obj) : (Data.Aeson..=) "email" (paymentSourceEmail obj) : (Data.Aeson..=) "eps" (paymentSourceEps obj) : (Data.Aeson..=) "exp_month" (paymentSourceExpMonth obj) : (Data.Aeson..=) "exp_year" (paymentSourceExpYear obj) : (Data.Aeson..=) "external_accounts" (paymentSourceExternalAccounts obj) : (Data.Aeson..=) "filled" (paymentSourceFilled obj) : (Data.Aeson..=) "fingerprint" (paymentSourceFingerprint obj) : (Data.Aeson..=) "flow" (paymentSourceFlow obj) : (Data.Aeson..=) "funding" (paymentSourceFunding obj) : (Data.Aeson..=) "giropay" (paymentSourceGiropay obj) : (Data.Aeson..=) "id" (paymentSourceId obj) : (Data.Aeson..=) "ideal" (paymentSourceIdeal obj) : (Data.Aeson..=) "inbound_address" (paymentSourceInboundAddress obj) : (Data.Aeson..=) "individual" (paymentSourceIndividual obj) : (Data.Aeson..=) "klarna" (paymentSourceKlarna obj) : (Data.Aeson..=) "last4" (paymentSourceLast4 obj) : (Data.Aeson..=) "livemode" (paymentSourceLivemode obj) : (Data.Aeson..=) "metadata" (paymentSourceMetadata obj) : (Data.Aeson..=) "multibanco" (paymentSourceMultibanco obj) : (Data.Aeson..=) "name" (paymentSourceName obj) : (Data.Aeson..=) "object" (paymentSourceObject obj) : (Data.Aeson..=) "owner" (paymentSourceOwner obj) : (Data.Aeson..=) "p24" (paymentSourceP24 obj) : (Data.Aeson..=) "payment" (paymentSourcePayment obj) : (Data.Aeson..=) "payment_amount" (paymentSourcePaymentAmount obj) : (Data.Aeson..=) "payment_currency" (paymentSourcePaymentCurrency obj) : (Data.Aeson..=) "payouts_enabled" (paymentSourcePayoutsEnabled obj) : (Data.Aeson..=) "receiver" (paymentSourceReceiver obj) : (Data.Aeson..=) "recipient" (paymentSourceRecipient obj) : (Data.Aeson..=) "redirect" (paymentSourceRedirect obj) : (Data.Aeson..=) "refund_address" (paymentSourceRefundAddress obj) : (Data.Aeson..=) "requirements" (paymentSourceRequirements obj) : (Data.Aeson..=) "reusable" (paymentSourceReusable obj) : (Data.Aeson..=) "routing_number" (paymentSourceRoutingNumber obj) : (Data.Aeson..=) "sepa_debit" (paymentSourceSepaDebit obj) : (Data.Aeson..=) "settings" (paymentSourceSettings obj) : (Data.Aeson..=) "sofort" (paymentSourceSofort obj) : (Data.Aeson..=) "source_order" (paymentSourceSourceOrder obj) : (Data.Aeson..=) "statement_descriptor" (paymentSourceStatementDescriptor obj) : (Data.Aeson..=) "status" (paymentSourceStatus obj) : (Data.Aeson..=) "three_d_secure" (paymentSourceThreeDSecure obj) : (Data.Aeson..=) "tokenization_method" (paymentSourceTokenizationMethod obj) : (Data.Aeson..=) "tos_acceptance" (paymentSourceTosAcceptance obj) : (Data.Aeson..=) "transactions" (paymentSourceTransactions obj) : (Data.Aeson..=) "type" (paymentSourceType obj) : (Data.Aeson..=) "uncaptured_funds" (paymentSourceUncapturedFunds obj) : (Data.Aeson..=) "usage" (paymentSourceUsage obj) : (Data.Aeson..=) "used" (paymentSourceUsed obj) : (Data.Aeson..=) "used_for_payment" (paymentSourceUsedForPayment obj) : (Data.Aeson..=) "username" (paymentSourceUsername obj) : (Data.Aeson..=) "wechat" (paymentSourceWechat obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (paymentSourceAccount obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_name" (paymentSourceAccountHolderName obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_type" (paymentSourceAccountHolderType obj) GHC.Base.<> ((Data.Aeson..=) "ach_credit_transfer" (paymentSourceAchCreditTransfer obj) GHC.Base.<> ((Data.Aeson..=) "ach_debit" (paymentSourceAchDebit obj) GHC.Base.<> ((Data.Aeson..=) "active" (paymentSourceActive obj) GHC.Base.<> ((Data.Aeson..=) "address_city" (paymentSourceAddressCity obj) GHC.Base.<> ((Data.Aeson..=) "address_country" (paymentSourceAddressCountry obj) GHC.Base.<> ((Data.Aeson..=) "address_line1" (paymentSourceAddressLine1 obj) GHC.Base.<> ((Data.Aeson..=) "address_line1_check" (paymentSourceAddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_line2" (paymentSourceAddressLine2 obj) GHC.Base.<> ((Data.Aeson..=) "address_state" (paymentSourceAddressState obj) GHC.Base.<> ((Data.Aeson..=) "address_zip" (paymentSourceAddressZip obj) GHC.Base.<> ((Data.Aeson..=) "address_zip_check" (paymentSourceAddressZipCheck obj) GHC.Base.<> ((Data.Aeson..=) "alipay" (paymentSourceAlipay obj) GHC.Base.<> ((Data.Aeson..=) "amount" (paymentSourceAmount obj) GHC.Base.<> ((Data.Aeson..=) "amount_received" (paymentSourceAmountReceived obj) GHC.Base.<> ((Data.Aeson..=) "available_payout_methods" (paymentSourceAvailablePayoutMethods obj) GHC.Base.<> ((Data.Aeson..=) "bancontact" (paymentSourceBancontact obj) GHC.Base.<> ((Data.Aeson..=) "bank_name" (paymentSourceBankName obj) GHC.Base.<> ((Data.Aeson..=) "bitcoin_amount" (paymentSourceBitcoinAmount obj) GHC.Base.<> ((Data.Aeson..=) "bitcoin_amount_received" (paymentSourceBitcoinAmountReceived obj) GHC.Base.<> ((Data.Aeson..=) "bitcoin_uri" (paymentSourceBitcoinUri obj) GHC.Base.<> ((Data.Aeson..=) "brand" (paymentSourceBrand obj) GHC.Base.<> ((Data.Aeson..=) "business_profile" (paymentSourceBusinessProfile obj) GHC.Base.<> ((Data.Aeson..=) "business_type" (paymentSourceBusinessType obj) GHC.Base.<> ((Data.Aeson..=) "capabilities" (paymentSourceCapabilities obj) GHC.Base.<> ((Data.Aeson..=) "card" (paymentSourceCard obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (paymentSourceCardPresent obj) GHC.Base.<> ((Data.Aeson..=) "charges_enabled" (paymentSourceChargesEnabled obj) GHC.Base.<> ((Data.Aeson..=) "client_secret" (paymentSourceClientSecret obj) GHC.Base.<> ((Data.Aeson..=) "code_verification" (paymentSourceCodeVerification obj) GHC.Base.<> ((Data.Aeson..=) "company" (paymentSourceCompany obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentSourceCountry obj) GHC.Base.<> ((Data.Aeson..=) "created" (paymentSourceCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (paymentSourceCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (paymentSourceCustomer obj) GHC.Base.<> ((Data.Aeson..=) "cvc_check" (paymentSourceCvcCheck obj) GHC.Base.<> ((Data.Aeson..=) "default_currency" (paymentSourceDefaultCurrency obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (paymentSourceDefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "description" (paymentSourceDescription obj) GHC.Base.<> ((Data.Aeson..=) "details_submitted" (paymentSourceDetailsSubmitted obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (paymentSourceDynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "email" (paymentSourceEmail obj) GHC.Base.<> ((Data.Aeson..=) "eps" (paymentSourceEps obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (paymentSourceExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (paymentSourceExpYear obj) GHC.Base.<> ((Data.Aeson..=) "external_accounts" (paymentSourceExternalAccounts obj) GHC.Base.<> ((Data.Aeson..=) "filled" (paymentSourceFilled obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (paymentSourceFingerprint obj) GHC.Base.<> ((Data.Aeson..=) "flow" (paymentSourceFlow obj) GHC.Base.<> ((Data.Aeson..=) "funding" (paymentSourceFunding obj) GHC.Base.<> ((Data.Aeson..=) "giropay" (paymentSourceGiropay obj) GHC.Base.<> ((Data.Aeson..=) "id" (paymentSourceId obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (paymentSourceIdeal obj) GHC.Base.<> ((Data.Aeson..=) "inbound_address" (paymentSourceInboundAddress obj) GHC.Base.<> ((Data.Aeson..=) "individual" (paymentSourceIndividual obj) GHC.Base.<> ((Data.Aeson..=) "klarna" (paymentSourceKlarna obj) GHC.Base.<> ((Data.Aeson..=) "last4" (paymentSourceLast4 obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (paymentSourceLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (paymentSourceMetadata obj) GHC.Base.<> ((Data.Aeson..=) "multibanco" (paymentSourceMultibanco obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentSourceName obj) GHC.Base.<> ((Data.Aeson..=) "object" (paymentSourceObject obj) GHC.Base.<> ((Data.Aeson..=) "owner" (paymentSourceOwner obj) GHC.Base.<> ((Data.Aeson..=) "p24" (paymentSourceP24 obj) GHC.Base.<> ((Data.Aeson..=) "payment" (paymentSourcePayment obj) GHC.Base.<> ((Data.Aeson..=) "payment_amount" (paymentSourcePaymentAmount obj) GHC.Base.<> ((Data.Aeson..=) "payment_currency" (paymentSourcePaymentCurrency obj) GHC.Base.<> ((Data.Aeson..=) "payouts_enabled" (paymentSourcePayoutsEnabled obj) GHC.Base.<> ((Data.Aeson..=) "receiver" (paymentSourceReceiver obj) GHC.Base.<> ((Data.Aeson..=) "recipient" (paymentSourceRecipient obj) GHC.Base.<> ((Data.Aeson..=) "redirect" (paymentSourceRedirect obj) GHC.Base.<> ((Data.Aeson..=) "refund_address" (paymentSourceRefundAddress obj) GHC.Base.<> ((Data.Aeson..=) "requirements" (paymentSourceRequirements obj) GHC.Base.<> ((Data.Aeson..=) "reusable" (paymentSourceReusable obj) GHC.Base.<> ((Data.Aeson..=) "routing_number" (paymentSourceRoutingNumber obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (paymentSourceSepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "settings" (paymentSourceSettings obj) GHC.Base.<> ((Data.Aeson..=) "sofort" (paymentSourceSofort obj) GHC.Base.<> ((Data.Aeson..=) "source_order" (paymentSourceSourceOrder obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (paymentSourceStatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "status" (paymentSourceStatus obj) GHC.Base.<> ((Data.Aeson..=) "three_d_secure" (paymentSourceThreeDSecure obj) GHC.Base.<> ((Data.Aeson..=) "tokenization_method" (paymentSourceTokenizationMethod obj) GHC.Base.<> ((Data.Aeson..=) "tos_acceptance" (paymentSourceTosAcceptance obj) GHC.Base.<> ((Data.Aeson..=) "transactions" (paymentSourceTransactions obj) GHC.Base.<> ((Data.Aeson..=) "type" (paymentSourceType obj) GHC.Base.<> ((Data.Aeson..=) "uncaptured_funds" (paymentSourceUncapturedFunds obj) GHC.Base.<> ((Data.Aeson..=) "usage" (paymentSourceUsage obj) GHC.Base.<> ((Data.Aeson..=) "used" (paymentSourceUsed obj) GHC.Base.<> ((Data.Aeson..=) "used_for_payment" (paymentSourceUsedForPayment obj) GHC.Base.<> ((Data.Aeson..=) "username" (paymentSourceUsername obj) GHC.Base.<> (Data.Aeson..=) "wechat" (paymentSourceWechat obj))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSource
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSource" (\obj -> (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((GHC.Base.pure PaymentSource GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "active")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_received")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_payout_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bitcoin_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bitcoin_amount_received")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bitcoin_uri")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "business_profile")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "business_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "capabilities")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charges_enabled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_secret")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "code_verification")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "company")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "details_submitted")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "external_accounts")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "filled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "flow")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "inbound_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "individual")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "owner")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payouts_enabled")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receiver")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "recipient")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "redirect")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "refund_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "requirements")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "reusable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "settings")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_order")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "three_d_secure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tokenization_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tos_acceptance")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transactions")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "uncaptured_funds")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "used")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "used_for_payment")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "username")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat"))
-- | Define the one-of schema payment_sourceAccount\'
-- 
-- The ID of the account that the bank account is associated with.
data PaymentSourceAccount'Variants
    = PaymentSourceAccount'Account Account
    | PaymentSourceAccount'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentSourceAccount'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentSourceAccount'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema payment_sourceAvailable_payout_methods\'
-- 
-- 
data PaymentSourceAvailablePayoutMethods'
    = PaymentSourceAvailablePayoutMethods'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentSourceAvailablePayoutMethods'EnumTyped GHC.Base.String
    | PaymentSourceAvailablePayoutMethods'EnumStringInstant
    | PaymentSourceAvailablePayoutMethods'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceAvailablePayoutMethods'
    where toJSON (PaymentSourceAvailablePayoutMethods'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceAvailablePayoutMethods'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceAvailablePayoutMethods'EnumStringInstant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant"
          toJSON (PaymentSourceAvailablePayoutMethods'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON PaymentSourceAvailablePayoutMethods'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant")
                                          then PaymentSourceAvailablePayoutMethods'EnumStringInstant
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                then PaymentSourceAvailablePayoutMethods'EnumStringStandard
                                                else PaymentSourceAvailablePayoutMethods'EnumOther val)
-- | Defines the data type for the schema payment_sourceBusiness_profile\'
-- 
-- Business information about the account.
data PaymentSourceBusinessProfile' = PaymentSourceBusinessProfile' {
  -- | mcc: [The merchant category code for the account](https:\/\/stripe.com\/docs\/connect\/setting-mcc). MCCs are used to classify businesses based on the goods or services they provide.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentSourceBusinessProfile'Mcc :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: The customer-facing business name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBusinessProfile'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | product_description: Internal-only description of the product sold or service provided by the business. It\'s used by Stripe for risk and underwriting purposes.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 40000
  , paymentSourceBusinessProfile'ProductDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | support_address: A publicly available mailing address for sending support issues to.
  , paymentSourceBusinessProfile'SupportAddress :: (GHC.Maybe.Maybe PaymentSourceBusinessProfile'SupportAddress')
  -- | support_email: A publicly available email address for sending support issues to.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBusinessProfile'SupportEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | support_phone: A publicly available phone number to call with support issues.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBusinessProfile'SupportPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | support_url: A publicly available website for handling support issues.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBusinessProfile'SupportUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | url: The business\'s publicly available website.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBusinessProfile'Url :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceBusinessProfile'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "mcc" (paymentSourceBusinessProfile'Mcc obj) : (Data.Aeson..=) "name" (paymentSourceBusinessProfile'Name obj) : (Data.Aeson..=) "product_description" (paymentSourceBusinessProfile'ProductDescription obj) : (Data.Aeson..=) "support_address" (paymentSourceBusinessProfile'SupportAddress obj) : (Data.Aeson..=) "support_email" (paymentSourceBusinessProfile'SupportEmail obj) : (Data.Aeson..=) "support_phone" (paymentSourceBusinessProfile'SupportPhone obj) : (Data.Aeson..=) "support_url" (paymentSourceBusinessProfile'SupportUrl obj) : (Data.Aeson..=) "url" (paymentSourceBusinessProfile'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "mcc" (paymentSourceBusinessProfile'Mcc obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentSourceBusinessProfile'Name obj) GHC.Base.<> ((Data.Aeson..=) "product_description" (paymentSourceBusinessProfile'ProductDescription obj) GHC.Base.<> ((Data.Aeson..=) "support_address" (paymentSourceBusinessProfile'SupportAddress obj) GHC.Base.<> ((Data.Aeson..=) "support_email" (paymentSourceBusinessProfile'SupportEmail obj) GHC.Base.<> ((Data.Aeson..=) "support_phone" (paymentSourceBusinessProfile'SupportPhone obj) GHC.Base.<> ((Data.Aeson..=) "support_url" (paymentSourceBusinessProfile'SupportUrl obj) GHC.Base.<> (Data.Aeson..=) "url" (paymentSourceBusinessProfile'Url obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceBusinessProfile'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceBusinessProfile'" (\obj -> (((((((GHC.Base.pure PaymentSourceBusinessProfile' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "mcc")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "product_description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "support_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "url"))
-- | Defines the data type for the schema payment_sourceBusiness_profile\'Support_address\'
-- 
-- A publicly available mailing address for sending support issues to.
data PaymentSourceBusinessProfile'SupportAddress' = PaymentSourceBusinessProfile'SupportAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentSourceBusinessProfile'SupportAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBusinessProfile'SupportAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBusinessProfile'SupportAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBusinessProfile'SupportAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBusinessProfile'SupportAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceBusinessProfile'SupportAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceBusinessProfile'SupportAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentSourceBusinessProfile'SupportAddress'City obj) : (Data.Aeson..=) "country" (paymentSourceBusinessProfile'SupportAddress'Country obj) : (Data.Aeson..=) "line1" (paymentSourceBusinessProfile'SupportAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentSourceBusinessProfile'SupportAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentSourceBusinessProfile'SupportAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentSourceBusinessProfile'SupportAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentSourceBusinessProfile'SupportAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentSourceBusinessProfile'SupportAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentSourceBusinessProfile'SupportAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentSourceBusinessProfile'SupportAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentSourceBusinessProfile'SupportAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentSourceBusinessProfile'SupportAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceBusinessProfile'SupportAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceBusinessProfile'SupportAddress'" (\obj -> (((((GHC.Base.pure PaymentSourceBusinessProfile'SupportAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the enum schema payment_sourceBusiness_type\'
-- 
-- The business type.
data PaymentSourceBusinessType'
    = PaymentSourceBusinessType'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentSourceBusinessType'EnumTyped GHC.Base.String
    | PaymentSourceBusinessType'EnumStringCompany
    | PaymentSourceBusinessType'EnumStringGovernmentEntity
    | PaymentSourceBusinessType'EnumStringIndividual
    | PaymentSourceBusinessType'EnumStringNonProfit
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceBusinessType'
    where toJSON (PaymentSourceBusinessType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceBusinessType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceBusinessType'EnumStringCompany) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "company"
          toJSON (PaymentSourceBusinessType'EnumStringGovernmentEntity) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_entity"
          toJSON (PaymentSourceBusinessType'EnumStringIndividual) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "individual"
          toJSON (PaymentSourceBusinessType'EnumStringNonProfit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_profit"
instance Data.Aeson.FromJSON PaymentSourceBusinessType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "company")
                                          then PaymentSourceBusinessType'EnumStringCompany
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "government_entity")
                                                then PaymentSourceBusinessType'EnumStringGovernmentEntity
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "individual")
                                                      then PaymentSourceBusinessType'EnumStringIndividual
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "non_profit")
                                                            then PaymentSourceBusinessType'EnumStringNonProfit
                                                            else PaymentSourceBusinessType'EnumOther val)
-- | Define the one-of schema payment_sourceCustomer\'
-- 
-- The ID of the customer associated with this Alipay Account.
data PaymentSourceCustomer'Variants
    = PaymentSourceCustomer'Customer Customer
    | PaymentSourceCustomer'DeletedCustomer DeletedCustomer
    | PaymentSourceCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentSourceCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentSourceCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema payment_sourceExternal_accounts\'
-- 
-- External accounts (bank accounts and debit cards) currently attached to this account
data PaymentSourceExternalAccounts' = PaymentSourceExternalAccounts' {
  -- | data: The list contains all external accounts that have been attached to the Stripe account. These may be bank accounts or cards.
  paymentSourceExternalAccounts'Data :: ([] PaymentSourceExternalAccounts'Data')
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , paymentSourceExternalAccounts'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , paymentSourceExternalAccounts'Object :: PaymentSourceExternalAccounts'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceExternalAccounts'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (paymentSourceExternalAccounts'Data obj) : (Data.Aeson..=) "has_more" (paymentSourceExternalAccounts'HasMore obj) : (Data.Aeson..=) "object" (paymentSourceExternalAccounts'Object obj) : (Data.Aeson..=) "url" (paymentSourceExternalAccounts'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (paymentSourceExternalAccounts'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (paymentSourceExternalAccounts'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (paymentSourceExternalAccounts'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (paymentSourceExternalAccounts'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceExternalAccounts'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceExternalAccounts'" (\obj -> (((GHC.Base.pure PaymentSourceExternalAccounts' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the data type for the schema payment_sourceExternal_accounts\'Data\'
-- 
-- 
data PaymentSourceExternalAccounts'Data' = PaymentSourceExternalAccounts'Data' {
  -- | account: The ID of the account that the bank account is associated with.
  paymentSourceExternalAccounts'Data'Account :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts'Data'Account'Variants)
  -- | account_holder_name: The name of the person or business that owns the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'AccountHolderName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'AccountHolderType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_city: City\/District\/Suburb\/Town\/Village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'AddressCity :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_country: Billing address country, if provided when creating card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'AddressCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'AddressLine1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'AddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'AddressLine2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_state: State\/County\/Province\/Region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'AddressState :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'AddressZip :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'AddressZipCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | available_payout_methods: A set of available payout methods for this card. Will be either \`[\"standard\"]\` or \`[\"standard\", \"instant\"]\`. Only values from this set should be passed as the \`method\` when creating a transfer.
  , paymentSourceExternalAccounts'Data'AvailablePayoutMethods :: (GHC.Maybe.Maybe ([] PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'))
  -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'BankName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'Brand :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter ISO code representing the country the bank account is located in.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  , paymentSourceExternalAccounts'Data'Currency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The ID of the customer that the bank account is associated with.
  , paymentSourceExternalAccounts'Data'Customer :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts'Data'Customer'Variants)
  -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'CvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_for_currency: Whether this bank account is the default external account for its currency.
  , paymentSourceExternalAccounts'Data'DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'DynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , paymentSourceExternalAccounts'Data'ExpMonth :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , paymentSourceExternalAccounts'Data'ExpYear :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'Fingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'Funding :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | last4: The last four digits of the bank account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'Last4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , paymentSourceExternalAccounts'Data'Metadata :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts'Data'Metadata')
  -- | name: Cardholder name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , paymentSourceExternalAccounts'Data'Object :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts'Data'Object')
  -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
  , paymentSourceExternalAccounts'Data'Recipient :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants)
  -- | routing_number: The routing transit number for the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'RoutingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
  -- 
  -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'Status :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`amex_express_checkout\`, \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceExternalAccounts'Data'TokenizationMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceExternalAccounts'Data'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (paymentSourceExternalAccounts'Data'Account obj) : (Data.Aeson..=) "account_holder_name" (paymentSourceExternalAccounts'Data'AccountHolderName obj) : (Data.Aeson..=) "account_holder_type" (paymentSourceExternalAccounts'Data'AccountHolderType obj) : (Data.Aeson..=) "address_city" (paymentSourceExternalAccounts'Data'AddressCity obj) : (Data.Aeson..=) "address_country" (paymentSourceExternalAccounts'Data'AddressCountry obj) : (Data.Aeson..=) "address_line1" (paymentSourceExternalAccounts'Data'AddressLine1 obj) : (Data.Aeson..=) "address_line1_check" (paymentSourceExternalAccounts'Data'AddressLine1Check obj) : (Data.Aeson..=) "address_line2" (paymentSourceExternalAccounts'Data'AddressLine2 obj) : (Data.Aeson..=) "address_state" (paymentSourceExternalAccounts'Data'AddressState obj) : (Data.Aeson..=) "address_zip" (paymentSourceExternalAccounts'Data'AddressZip obj) : (Data.Aeson..=) "address_zip_check" (paymentSourceExternalAccounts'Data'AddressZipCheck obj) : (Data.Aeson..=) "available_payout_methods" (paymentSourceExternalAccounts'Data'AvailablePayoutMethods obj) : (Data.Aeson..=) "bank_name" (paymentSourceExternalAccounts'Data'BankName obj) : (Data.Aeson..=) "brand" (paymentSourceExternalAccounts'Data'Brand obj) : (Data.Aeson..=) "country" (paymentSourceExternalAccounts'Data'Country obj) : (Data.Aeson..=) "currency" (paymentSourceExternalAccounts'Data'Currency obj) : (Data.Aeson..=) "customer" (paymentSourceExternalAccounts'Data'Customer obj) : (Data.Aeson..=) "cvc_check" (paymentSourceExternalAccounts'Data'CvcCheck obj) : (Data.Aeson..=) "default_for_currency" (paymentSourceExternalAccounts'Data'DefaultForCurrency obj) : (Data.Aeson..=) "dynamic_last4" (paymentSourceExternalAccounts'Data'DynamicLast4 obj) : (Data.Aeson..=) "exp_month" (paymentSourceExternalAccounts'Data'ExpMonth obj) : (Data.Aeson..=) "exp_year" (paymentSourceExternalAccounts'Data'ExpYear obj) : (Data.Aeson..=) "fingerprint" (paymentSourceExternalAccounts'Data'Fingerprint obj) : (Data.Aeson..=) "funding" (paymentSourceExternalAccounts'Data'Funding obj) : (Data.Aeson..=) "id" (paymentSourceExternalAccounts'Data'Id obj) : (Data.Aeson..=) "last4" (paymentSourceExternalAccounts'Data'Last4 obj) : (Data.Aeson..=) "metadata" (paymentSourceExternalAccounts'Data'Metadata obj) : (Data.Aeson..=) "name" (paymentSourceExternalAccounts'Data'Name obj) : (Data.Aeson..=) "object" (paymentSourceExternalAccounts'Data'Object obj) : (Data.Aeson..=) "recipient" (paymentSourceExternalAccounts'Data'Recipient obj) : (Data.Aeson..=) "routing_number" (paymentSourceExternalAccounts'Data'RoutingNumber obj) : (Data.Aeson..=) "status" (paymentSourceExternalAccounts'Data'Status obj) : (Data.Aeson..=) "tokenization_method" (paymentSourceExternalAccounts'Data'TokenizationMethod obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (paymentSourceExternalAccounts'Data'Account obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_name" (paymentSourceExternalAccounts'Data'AccountHolderName obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_type" (paymentSourceExternalAccounts'Data'AccountHolderType obj) GHC.Base.<> ((Data.Aeson..=) "address_city" (paymentSourceExternalAccounts'Data'AddressCity obj) GHC.Base.<> ((Data.Aeson..=) "address_country" (paymentSourceExternalAccounts'Data'AddressCountry obj) GHC.Base.<> ((Data.Aeson..=) "address_line1" (paymentSourceExternalAccounts'Data'AddressLine1 obj) GHC.Base.<> ((Data.Aeson..=) "address_line1_check" (paymentSourceExternalAccounts'Data'AddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_line2" (paymentSourceExternalAccounts'Data'AddressLine2 obj) GHC.Base.<> ((Data.Aeson..=) "address_state" (paymentSourceExternalAccounts'Data'AddressState obj) GHC.Base.<> ((Data.Aeson..=) "address_zip" (paymentSourceExternalAccounts'Data'AddressZip obj) GHC.Base.<> ((Data.Aeson..=) "address_zip_check" (paymentSourceExternalAccounts'Data'AddressZipCheck obj) GHC.Base.<> ((Data.Aeson..=) "available_payout_methods" (paymentSourceExternalAccounts'Data'AvailablePayoutMethods obj) GHC.Base.<> ((Data.Aeson..=) "bank_name" (paymentSourceExternalAccounts'Data'BankName obj) GHC.Base.<> ((Data.Aeson..=) "brand" (paymentSourceExternalAccounts'Data'Brand obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentSourceExternalAccounts'Data'Country obj) GHC.Base.<> ((Data.Aeson..=) "currency" (paymentSourceExternalAccounts'Data'Currency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (paymentSourceExternalAccounts'Data'Customer obj) GHC.Base.<> ((Data.Aeson..=) "cvc_check" (paymentSourceExternalAccounts'Data'CvcCheck obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (paymentSourceExternalAccounts'Data'DefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (paymentSourceExternalAccounts'Data'DynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (paymentSourceExternalAccounts'Data'ExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (paymentSourceExternalAccounts'Data'ExpYear obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (paymentSourceExternalAccounts'Data'Fingerprint obj) GHC.Base.<> ((Data.Aeson..=) "funding" (paymentSourceExternalAccounts'Data'Funding obj) GHC.Base.<> ((Data.Aeson..=) "id" (paymentSourceExternalAccounts'Data'Id obj) GHC.Base.<> ((Data.Aeson..=) "last4" (paymentSourceExternalAccounts'Data'Last4 obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (paymentSourceExternalAccounts'Data'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentSourceExternalAccounts'Data'Name obj) GHC.Base.<> ((Data.Aeson..=) "object" (paymentSourceExternalAccounts'Data'Object obj) GHC.Base.<> ((Data.Aeson..=) "recipient" (paymentSourceExternalAccounts'Data'Recipient obj) GHC.Base.<> ((Data.Aeson..=) "routing_number" (paymentSourceExternalAccounts'Data'RoutingNumber obj) GHC.Base.<> ((Data.Aeson..=) "status" (paymentSourceExternalAccounts'Data'Status obj) GHC.Base.<> (Data.Aeson..=) "tokenization_method" (paymentSourceExternalAccounts'Data'TokenizationMethod obj)))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceExternalAccounts'Data'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceExternalAccounts'Data'" (\obj -> ((((((((((((((((((((((((((((((((GHC.Base.pure PaymentSourceExternalAccounts'Data' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_payout_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "recipient")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tokenization_method"))
-- | Define the one-of schema payment_sourceExternal_accounts\'Data\'Account\'
-- 
-- The ID of the account that the bank account is associated with.
data PaymentSourceExternalAccounts'Data'Account'Variants
    = PaymentSourceExternalAccounts'Data'Account'Account Account
    | PaymentSourceExternalAccounts'Data'Account'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentSourceExternalAccounts'Data'Account'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentSourceExternalAccounts'Data'Account'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema payment_sourceExternal_accounts\'Data\'Available_payout_methods\'
-- 
-- 
data PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
    = PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumTyped GHC.Base.String
    | PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumStringInstant
    | PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
    where toJSON (PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumStringInstant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant"
          toJSON (PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant")
                                          then PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumStringInstant
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                then PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumStringStandard
                                                else PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumOther val)
-- | Define the one-of schema payment_sourceExternal_accounts\'Data\'Customer\'
-- 
-- The ID of the customer that the bank account is associated with.
data PaymentSourceExternalAccounts'Data'Customer'Variants
    = PaymentSourceExternalAccounts'Data'Customer'Customer Customer
    | PaymentSourceExternalAccounts'Data'Customer'DeletedCustomer DeletedCustomer
    | PaymentSourceExternalAccounts'Data'Customer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentSourceExternalAccounts'Data'Customer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentSourceExternalAccounts'Data'Customer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema payment_sourceExternal_accounts\'Data\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data PaymentSourceExternalAccounts'Data'Metadata' = PaymentSourceExternalAccounts'Data'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceExternalAccounts'Data'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceExternalAccounts'Data'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceExternalAccounts'Data'Metadata'" (\obj -> GHC.Base.pure PaymentSourceExternalAccounts'Data'Metadata')
-- | Defines the enum schema payment_sourceExternal_accounts\'Data\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data PaymentSourceExternalAccounts'Data'Object'
    = PaymentSourceExternalAccounts'Data'Object'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentSourceExternalAccounts'Data'Object'EnumTyped GHC.Base.String
    | PaymentSourceExternalAccounts'Data'Object'EnumStringBankAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceExternalAccounts'Data'Object'
    where toJSON (PaymentSourceExternalAccounts'Data'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceExternalAccounts'Data'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceExternalAccounts'Data'Object'EnumStringBankAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account"
instance Data.Aeson.FromJSON PaymentSourceExternalAccounts'Data'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account")
                                          then PaymentSourceExternalAccounts'Data'Object'EnumStringBankAccount
                                          else PaymentSourceExternalAccounts'Data'Object'EnumOther val)
-- | Define the one-of schema payment_sourceExternal_accounts\'Data\'Recipient\'
-- 
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data PaymentSourceExternalAccounts'Data'Recipient'Variants
    = PaymentSourceExternalAccounts'Data'Recipient'Recipient Recipient
    | PaymentSourceExternalAccounts'Data'Recipient'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentSourceExternalAccounts'Data'Recipient'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentSourceExternalAccounts'Data'Recipient'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema payment_sourceExternal_accounts\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data PaymentSourceExternalAccounts'Object'
    = PaymentSourceExternalAccounts'Object'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentSourceExternalAccounts'Object'EnumTyped GHC.Base.String
    | PaymentSourceExternalAccounts'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceExternalAccounts'Object'
    where toJSON (PaymentSourceExternalAccounts'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceExternalAccounts'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceExternalAccounts'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON PaymentSourceExternalAccounts'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then PaymentSourceExternalAccounts'Object'EnumStringList
                                          else PaymentSourceExternalAccounts'Object'EnumOther val)
-- | Defines the data type for the schema payment_sourceMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data PaymentSourceMetadata' = PaymentSourceMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceMetadata'" (\obj -> GHC.Base.pure PaymentSourceMetadata')
-- | Defines the enum schema payment_sourceObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data PaymentSourceObject'
    = PaymentSourceObject'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentSourceObject'EnumTyped GHC.Base.String
    | PaymentSourceObject'EnumStringAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceObject'
    where toJSON (PaymentSourceObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceObject'EnumStringAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "account"
instance Data.Aeson.FromJSON PaymentSourceObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "account")
                                          then PaymentSourceObject'EnumStringAccount
                                          else PaymentSourceObject'EnumOther val)
-- | Defines the data type for the schema payment_sourceOwner\'
-- 
-- Information about the owner of the payment instrument that may be used or required by particular source types.
data PaymentSourceOwner' = PaymentSourceOwner' {
  -- | address: Owner\'s address.
  paymentSourceOwner'Address :: (GHC.Maybe.Maybe PaymentSourceOwner'Address')
  -- | email: Owner\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'Email :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s full name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Owner\'s phone number (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_address: Verified owner\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , paymentSourceOwner'VerifiedAddress :: (GHC.Maybe.Maybe PaymentSourceOwner'VerifiedAddress')
  -- | verified_email: Verified owner\'s email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'VerifiedEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_name: Verified owner\'s full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'VerifiedName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_phone: Verified owner\'s phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'VerifiedPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceOwner'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (paymentSourceOwner'Address obj) : (Data.Aeson..=) "email" (paymentSourceOwner'Email obj) : (Data.Aeson..=) "name" (paymentSourceOwner'Name obj) : (Data.Aeson..=) "phone" (paymentSourceOwner'Phone obj) : (Data.Aeson..=) "verified_address" (paymentSourceOwner'VerifiedAddress obj) : (Data.Aeson..=) "verified_email" (paymentSourceOwner'VerifiedEmail obj) : (Data.Aeson..=) "verified_name" (paymentSourceOwner'VerifiedName obj) : (Data.Aeson..=) "verified_phone" (paymentSourceOwner'VerifiedPhone obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (paymentSourceOwner'Address obj) GHC.Base.<> ((Data.Aeson..=) "email" (paymentSourceOwner'Email obj) GHC.Base.<> ((Data.Aeson..=) "name" (paymentSourceOwner'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (paymentSourceOwner'Phone obj) GHC.Base.<> ((Data.Aeson..=) "verified_address" (paymentSourceOwner'VerifiedAddress obj) GHC.Base.<> ((Data.Aeson..=) "verified_email" (paymentSourceOwner'VerifiedEmail obj) GHC.Base.<> ((Data.Aeson..=) "verified_name" (paymentSourceOwner'VerifiedName obj) GHC.Base.<> (Data.Aeson..=) "verified_phone" (paymentSourceOwner'VerifiedPhone obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceOwner'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceOwner'" (\obj -> (((((((GHC.Base.pure PaymentSourceOwner' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_phone"))
-- | Defines the data type for the schema payment_sourceOwner\'Address\'
-- 
-- Owner\\\'s address.
data PaymentSourceOwner'Address' = PaymentSourceOwner'Address' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentSourceOwner'Address'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'Address'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'Address'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'Address'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'Address'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'Address'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceOwner'Address'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentSourceOwner'Address'City obj) : (Data.Aeson..=) "country" (paymentSourceOwner'Address'Country obj) : (Data.Aeson..=) "line1" (paymentSourceOwner'Address'Line1 obj) : (Data.Aeson..=) "line2" (paymentSourceOwner'Address'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentSourceOwner'Address'PostalCode obj) : (Data.Aeson..=) "state" (paymentSourceOwner'Address'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentSourceOwner'Address'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentSourceOwner'Address'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentSourceOwner'Address'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentSourceOwner'Address'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentSourceOwner'Address'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentSourceOwner'Address'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceOwner'Address'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceOwner'Address'" (\obj -> (((((GHC.Base.pure PaymentSourceOwner'Address' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema payment_sourceOwner\'Verified_address\'
-- 
-- Verified owner\\\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentSourceOwner'VerifiedAddress' = PaymentSourceOwner'VerifiedAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  paymentSourceOwner'VerifiedAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'VerifiedAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'VerifiedAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'VerifiedAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'VerifiedAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceOwner'VerifiedAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceOwner'VerifiedAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (paymentSourceOwner'VerifiedAddress'City obj) : (Data.Aeson..=) "country" (paymentSourceOwner'VerifiedAddress'Country obj) : (Data.Aeson..=) "line1" (paymentSourceOwner'VerifiedAddress'Line1 obj) : (Data.Aeson..=) "line2" (paymentSourceOwner'VerifiedAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (paymentSourceOwner'VerifiedAddress'PostalCode obj) : (Data.Aeson..=) "state" (paymentSourceOwner'VerifiedAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (paymentSourceOwner'VerifiedAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (paymentSourceOwner'VerifiedAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (paymentSourceOwner'VerifiedAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (paymentSourceOwner'VerifiedAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (paymentSourceOwner'VerifiedAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (paymentSourceOwner'VerifiedAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceOwner'VerifiedAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceOwner'VerifiedAddress'" (\obj -> (((((GHC.Base.pure PaymentSourceOwner'VerifiedAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Define the one-of schema payment_sourceRecipient\'
-- 
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data PaymentSourceRecipient'Variants
    = PaymentSourceRecipient'Recipient Recipient
    | PaymentSourceRecipient'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PaymentSourceRecipient'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PaymentSourceRecipient'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema payment_sourceSettings\'
-- 
-- Options for customizing how the account functions within Stripe.
data PaymentSourceSettings' = PaymentSourceSettings' {
  -- | branding: 
  paymentSourceSettings'Branding :: (GHC.Maybe.Maybe AccountBrandingSettings)
  -- | card_payments: 
  , paymentSourceSettings'CardPayments :: (GHC.Maybe.Maybe AccountCardPaymentsSettings)
  -- | dashboard: 
  , paymentSourceSettings'Dashboard :: (GHC.Maybe.Maybe AccountDashboardSettings)
  -- | payments: 
  , paymentSourceSettings'Payments :: (GHC.Maybe.Maybe AccountPaymentsSettings)
  -- | payouts: 
  , paymentSourceSettings'Payouts :: (GHC.Maybe.Maybe AccountPayoutSettings)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceSettings'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "branding" (paymentSourceSettings'Branding obj) : (Data.Aeson..=) "card_payments" (paymentSourceSettings'CardPayments obj) : (Data.Aeson..=) "dashboard" (paymentSourceSettings'Dashboard obj) : (Data.Aeson..=) "payments" (paymentSourceSettings'Payments obj) : (Data.Aeson..=) "payouts" (paymentSourceSettings'Payouts obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "branding" (paymentSourceSettings'Branding obj) GHC.Base.<> ((Data.Aeson..=) "card_payments" (paymentSourceSettings'CardPayments obj) GHC.Base.<> ((Data.Aeson..=) "dashboard" (paymentSourceSettings'Dashboard obj) GHC.Base.<> ((Data.Aeson..=) "payments" (paymentSourceSettings'Payments obj) GHC.Base.<> (Data.Aeson..=) "payouts" (paymentSourceSettings'Payouts obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceSettings'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceSettings'" (\obj -> ((((GHC.Base.pure PaymentSourceSettings' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "branding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_payments")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dashboard")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payments")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payouts"))
-- | Defines the data type for the schema payment_sourceTransactions\'
-- 
-- A list with one entry for each time that the customer sent bitcoin to the receiver. Hidden when viewing the receiver with a publishable key.
data PaymentSourceTransactions' = PaymentSourceTransactions' {
  -- | data: Details about each object.
  paymentSourceTransactions'Data :: ([] BitcoinTransaction)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , paymentSourceTransactions'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , paymentSourceTransactions'Object :: PaymentSourceTransactions'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , paymentSourceTransactions'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceTransactions'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (paymentSourceTransactions'Data obj) : (Data.Aeson..=) "has_more" (paymentSourceTransactions'HasMore obj) : (Data.Aeson..=) "object" (paymentSourceTransactions'Object obj) : (Data.Aeson..=) "url" (paymentSourceTransactions'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (paymentSourceTransactions'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (paymentSourceTransactions'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (paymentSourceTransactions'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (paymentSourceTransactions'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceTransactions'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PaymentSourceTransactions'" (\obj -> (((GHC.Base.pure PaymentSourceTransactions' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema payment_sourceTransactions\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data PaymentSourceTransactions'Object'
    = PaymentSourceTransactions'Object'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentSourceTransactions'Object'EnumTyped GHC.Base.String
    | PaymentSourceTransactions'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceTransactions'Object'
    where toJSON (PaymentSourceTransactions'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceTransactions'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceTransactions'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON PaymentSourceTransactions'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then PaymentSourceTransactions'Object'EnumStringList
                                          else PaymentSourceTransactions'Object'EnumOther val)
-- | Defines the enum schema payment_sourceType\'
-- 
-- The Stripe account type. Can be \`standard\`, \`express\`, or \`custom\`.
data PaymentSourceType'
    = PaymentSourceType'EnumOther Data.Aeson.Types.Internal.Value
    | PaymentSourceType'EnumTyped GHC.Base.String
    | PaymentSourceType'EnumStringCustom
    | PaymentSourceType'EnumStringExpress
    | PaymentSourceType'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PaymentSourceType'
    where toJSON (PaymentSourceType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PaymentSourceType'EnumStringCustom) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "custom"
          toJSON (PaymentSourceType'EnumStringExpress) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "express"
          toJSON (PaymentSourceType'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON PaymentSourceType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "custom")
                                          then PaymentSourceType'EnumStringCustom
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "express")
                                                then PaymentSourceType'EnumStringExpress
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                      then PaymentSourceType'EnumStringStandard
                                                      else PaymentSourceType'EnumOther val)
-- | Defines the data type for the schema payout
-- 
-- A \`Payout\` object is created when you receive funds from Stripe, or when you
-- initiate a payout to either a bank account or debit card of a [connected
-- Stripe account](\/docs\/connect\/payouts). You can retrieve individual payouts,
-- as well as list all payouts. Payouts are made on [varying
-- schedules](\/docs\/payouts\#payout-schedule), depending on your country and
-- industry.
-- 
-- Related guide: [Receiving Payouts](https:\/\/stripe.com\/docs\/payouts).
data Payout = Payout {
  -- | amount: Amount (in %s) to be transferred to your bank account or debit card.
  payoutAmount :: GHC.Integer.Type.Integer
  -- | arrival_date: Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.
  , payoutArrivalDate :: GHC.Integer.Type.Integer
  -- | automatic: Returns \`true\` if the payout was created by an [automated payout schedule](https:\/\/stripe.com\/docs\/payouts\#payout-schedule), and \`false\` if it was [requested manually](https:\/\/stripe.com\/docs\/payouts\#manual-payouts).
  , payoutAutomatic :: GHC.Types.Bool
  -- | balance_transaction: ID of the balance transaction that describes the impact of this payout on your account balance.
  , payoutBalanceTransaction :: (GHC.Maybe.Maybe PayoutBalanceTransaction'Variants)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , payoutCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , payoutCurrency :: GHC.Base.String
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , payoutDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | destination: ID of the bank account or card the payout was sent to.
  , payoutDestination :: (GHC.Maybe.Maybe PayoutDestination'Variants)
  -- | failure_balance_transaction: If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance.
  , payoutFailureBalanceTransaction :: (GHC.Maybe.Maybe PayoutFailureBalanceTransaction'Variants)
  -- | failure_code: Error code explaining reason for payout failure if available. See [Types of payout failures](https:\/\/stripe.com\/docs\/api\#payout_failures) for a list of failure codes.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , payoutFailureCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | failure_message: Message to user further explaining reason for payout failure if available.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , payoutFailureMessage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , payoutId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , payoutLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , payoutMetadata :: PayoutMetadata'
  -- | method: The method used to send this payout, which can be \`standard\` or \`instant\`. \`instant\` is only supported for payouts to debit cards. (See [Instant payouts for marketplaces](https:\/\/stripe.com\/blog\/instant-payouts-for-marketplaces) for more information.)
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , payoutMethod :: GHC.Base.String
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , payoutObject :: PayoutObject'
  -- | source_type: The source balance this payout came from. One of \`card\`, \`fpx\`, or \`bank_account\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , payoutSourceType :: GHC.Base.String
  -- | statement_descriptor: Extra information about a payout to be displayed on the user\'s bank statement.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , payoutStatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: Current status of the payout (\`paid\`, \`pending\`, \`in_transit\`, \`canceled\` or \`failed\`). A payout will be \`pending\` until it is submitted to the bank, at which point it becomes \`in_transit\`. It will then change to \`paid\` if the transaction goes through. If it does not go through successfully, its status will change to \`failed\` or \`canceled\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , payoutStatus :: GHC.Base.String
  -- | type: Can be \`bank_account\` or \`card\`.
  , payoutType :: PayoutType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Payout
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (payoutAmount obj) : (Data.Aeson..=) "arrival_date" (payoutArrivalDate obj) : (Data.Aeson..=) "automatic" (payoutAutomatic obj) : (Data.Aeson..=) "balance_transaction" (payoutBalanceTransaction obj) : (Data.Aeson..=) "created" (payoutCreated obj) : (Data.Aeson..=) "currency" (payoutCurrency obj) : (Data.Aeson..=) "description" (payoutDescription obj) : (Data.Aeson..=) "destination" (payoutDestination obj) : (Data.Aeson..=) "failure_balance_transaction" (payoutFailureBalanceTransaction obj) : (Data.Aeson..=) "failure_code" (payoutFailureCode obj) : (Data.Aeson..=) "failure_message" (payoutFailureMessage obj) : (Data.Aeson..=) "id" (payoutId obj) : (Data.Aeson..=) "livemode" (payoutLivemode obj) : (Data.Aeson..=) "metadata" (payoutMetadata obj) : (Data.Aeson..=) "method" (payoutMethod obj) : (Data.Aeson..=) "object" (payoutObject obj) : (Data.Aeson..=) "source_type" (payoutSourceType obj) : (Data.Aeson..=) "statement_descriptor" (payoutStatementDescriptor obj) : (Data.Aeson..=) "status" (payoutStatus obj) : (Data.Aeson..=) "type" (payoutType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (payoutAmount obj) GHC.Base.<> ((Data.Aeson..=) "arrival_date" (payoutArrivalDate obj) GHC.Base.<> ((Data.Aeson..=) "automatic" (payoutAutomatic obj) GHC.Base.<> ((Data.Aeson..=) "balance_transaction" (payoutBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "created" (payoutCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (payoutCurrency obj) GHC.Base.<> ((Data.Aeson..=) "description" (payoutDescription obj) GHC.Base.<> ((Data.Aeson..=) "destination" (payoutDestination obj) GHC.Base.<> ((Data.Aeson..=) "failure_balance_transaction" (payoutFailureBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "failure_code" (payoutFailureCode obj) GHC.Base.<> ((Data.Aeson..=) "failure_message" (payoutFailureMessage obj) GHC.Base.<> ((Data.Aeson..=) "id" (payoutId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (payoutLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (payoutMetadata obj) GHC.Base.<> ((Data.Aeson..=) "method" (payoutMethod obj) GHC.Base.<> ((Data.Aeson..=) "object" (payoutObject obj) GHC.Base.<> ((Data.Aeson..=) "source_type" (payoutSourceType obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (payoutStatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "status" (payoutStatus obj) GHC.Base.<> (Data.Aeson..=) "type" (payoutType obj))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Payout
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Payout" (\obj -> (((((((((((((((((((GHC.Base.pure Payout GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "arrival_date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "automatic")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "destination")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "failure_balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "failure_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "failure_message")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "source_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Define the one-of schema payoutBalance_transaction\'
-- 
-- ID of the balance transaction that describes the impact of this payout on your account balance.
data PayoutBalanceTransaction'Variants
    = PayoutBalanceTransaction'BalanceTransaction BalanceTransaction
    | PayoutBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PayoutBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PayoutBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema payoutDestination\'
-- 
-- ID of the bank account or card the payout was sent to.
data PayoutDestination'Variants
    = PayoutDestination'BankAccount BankAccount
    | PayoutDestination'Card Card
    | PayoutDestination'DeletedBankAccount DeletedBankAccount
    | PayoutDestination'DeletedCard DeletedCard
    | PayoutDestination'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PayoutDestination'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PayoutDestination'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema payoutFailure_balance_transaction\'
-- 
-- If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance.
data PayoutFailureBalanceTransaction'Variants
    = PayoutFailureBalanceTransaction'BalanceTransaction BalanceTransaction
    | PayoutFailureBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PayoutFailureBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PayoutFailureBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema payoutMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data PayoutMetadata' = PayoutMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PayoutMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON PayoutMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PayoutMetadata'" (\obj -> GHC.Base.pure PayoutMetadata')
-- | Defines the enum schema payoutObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data PayoutObject'
    = PayoutObject'EnumOther Data.Aeson.Types.Internal.Value
    | PayoutObject'EnumTyped GHC.Base.String
    | PayoutObject'EnumStringPayout
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PayoutObject'
    where toJSON (PayoutObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PayoutObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PayoutObject'EnumStringPayout) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payout"
instance Data.Aeson.FromJSON PayoutObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "payout")
                                          then PayoutObject'EnumStringPayout
                                          else PayoutObject'EnumOther val)
-- | Defines the enum schema payoutType\'
-- 
-- Can be \`bank_account\` or \`card\`.
data PayoutType'
    = PayoutType'EnumOther Data.Aeson.Types.Internal.Value
    | PayoutType'EnumTyped GHC.Base.String
    | PayoutType'EnumStringBankAccount
    | PayoutType'EnumStringCard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PayoutType'
    where toJSON (PayoutType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PayoutType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PayoutType'EnumStringBankAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account"
          toJSON (PayoutType'EnumStringCard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card"
instance Data.Aeson.FromJSON PayoutType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account")
                                          then PayoutType'EnumStringBankAccount
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card")
                                                then PayoutType'EnumStringCard
                                                else PayoutType'EnumOther val)
-- | Defines the data type for the schema person
-- 
-- This is an object representing a person associated with a Stripe account.
-- 
-- Related guide: [Handling Identity Verification with the API](https:\/\/stripe.com\/docs\/connect\/identity-verification-api\#person-information).
data Person = Person {
  -- | account
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  personAccount :: GHC.Base.String
  -- | address: 
  , personAddress :: (GHC.Maybe.Maybe Address)
  -- | address_kana
  , personAddressKana :: (GHC.Maybe.Maybe PersonAddressKana')
  -- | address_kanji
  , personAddressKanji :: (GHC.Maybe.Maybe PersonAddressKanji')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , personCreated :: GHC.Integer.Type.Integer
  -- | dob: 
  , personDob :: (GHC.Maybe.Maybe LegalEntityDob)
  -- | email
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | first_name
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personFirstName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | first_name_kana
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personFirstNameKana :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | first_name_kanji
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personFirstNameKanji :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | gender
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personGender :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personId :: GHC.Base.String
  -- | id_number_provided
  , personIdNumberProvided :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | last_name
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personLastName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | last_name_kana
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personLastNameKana :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | last_name_kanji
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personLastNameKanji :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | maiden_name
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personMaidenName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , personMetadata :: (GHC.Maybe.Maybe PersonMetadata')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , personObject :: PersonObject'
  -- | phone
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | relationship: 
  , personRelationship :: (GHC.Maybe.Maybe PersonRelationship)
  -- | requirements
  , personRequirements :: (GHC.Maybe.Maybe PersonRequirements')
  -- | ssn_last_4_provided
  , personSsnLast_4Provided :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | verification: 
  , personVerification :: (GHC.Maybe.Maybe LegalEntityPersonVerification)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Person
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (personAccount obj) : (Data.Aeson..=) "address" (personAddress obj) : (Data.Aeson..=) "address_kana" (personAddressKana obj) : (Data.Aeson..=) "address_kanji" (personAddressKanji obj) : (Data.Aeson..=) "created" (personCreated obj) : (Data.Aeson..=) "dob" (personDob obj) : (Data.Aeson..=) "email" (personEmail obj) : (Data.Aeson..=) "first_name" (personFirstName obj) : (Data.Aeson..=) "first_name_kana" (personFirstNameKana obj) : (Data.Aeson..=) "first_name_kanji" (personFirstNameKanji obj) : (Data.Aeson..=) "gender" (personGender obj) : (Data.Aeson..=) "id" (personId obj) : (Data.Aeson..=) "id_number_provided" (personIdNumberProvided obj) : (Data.Aeson..=) "last_name" (personLastName obj) : (Data.Aeson..=) "last_name_kana" (personLastNameKana obj) : (Data.Aeson..=) "last_name_kanji" (personLastNameKanji obj) : (Data.Aeson..=) "maiden_name" (personMaidenName obj) : (Data.Aeson..=) "metadata" (personMetadata obj) : (Data.Aeson..=) "object" (personObject obj) : (Data.Aeson..=) "phone" (personPhone obj) : (Data.Aeson..=) "relationship" (personRelationship obj) : (Data.Aeson..=) "requirements" (personRequirements obj) : (Data.Aeson..=) "ssn_last_4_provided" (personSsnLast_4Provided obj) : (Data.Aeson..=) "verification" (personVerification obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (personAccount obj) GHC.Base.<> ((Data.Aeson..=) "address" (personAddress obj) GHC.Base.<> ((Data.Aeson..=) "address_kana" (personAddressKana obj) GHC.Base.<> ((Data.Aeson..=) "address_kanji" (personAddressKanji obj) GHC.Base.<> ((Data.Aeson..=) "created" (personCreated obj) GHC.Base.<> ((Data.Aeson..=) "dob" (personDob obj) GHC.Base.<> ((Data.Aeson..=) "email" (personEmail obj) GHC.Base.<> ((Data.Aeson..=) "first_name" (personFirstName obj) GHC.Base.<> ((Data.Aeson..=) "first_name_kana" (personFirstNameKana obj) GHC.Base.<> ((Data.Aeson..=) "first_name_kanji" (personFirstNameKanji obj) GHC.Base.<> ((Data.Aeson..=) "gender" (personGender obj) GHC.Base.<> ((Data.Aeson..=) "id" (personId obj) GHC.Base.<> ((Data.Aeson..=) "id_number_provided" (personIdNumberProvided obj) GHC.Base.<> ((Data.Aeson..=) "last_name" (personLastName obj) GHC.Base.<> ((Data.Aeson..=) "last_name_kana" (personLastNameKana obj) GHC.Base.<> ((Data.Aeson..=) "last_name_kanji" (personLastNameKanji obj) GHC.Base.<> ((Data.Aeson..=) "maiden_name" (personMaidenName obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (personMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (personObject obj) GHC.Base.<> ((Data.Aeson..=) "phone" (personPhone obj) GHC.Base.<> ((Data.Aeson..=) "relationship" (personRelationship obj) GHC.Base.<> ((Data.Aeson..=) "requirements" (personRequirements obj) GHC.Base.<> ((Data.Aeson..=) "ssn_last_4_provided" (personSsnLast_4Provided obj) GHC.Base.<> (Data.Aeson..=) "verification" (personVerification obj))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Person
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Person" (\obj -> (((((((((((((((((((((((GHC.Base.pure Person GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_kana")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_kanji")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dob")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "first_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "first_name_kana")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "first_name_kanji")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "gender")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id_number_provided")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last_name_kana")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last_name_kanji")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "maiden_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "relationship")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "requirements")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ssn_last_4_provided")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verification"))
-- | Defines the data type for the schema personAddress_kana\'
-- 
-- 
data PersonAddressKana' = PersonAddressKana' {
  -- | city: City\/Ward.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  personAddressKana'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKana'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Block\/Building number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKana'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Building details.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKana'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKana'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: Prefecture.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKana'State :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | town: Town\/cho-me.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKana'Town :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PersonAddressKana'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (personAddressKana'City obj) : (Data.Aeson..=) "country" (personAddressKana'Country obj) : (Data.Aeson..=) "line1" (personAddressKana'Line1 obj) : (Data.Aeson..=) "line2" (personAddressKana'Line2 obj) : (Data.Aeson..=) "postal_code" (personAddressKana'PostalCode obj) : (Data.Aeson..=) "state" (personAddressKana'State obj) : (Data.Aeson..=) "town" (personAddressKana'Town obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (personAddressKana'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (personAddressKana'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (personAddressKana'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (personAddressKana'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (personAddressKana'PostalCode obj) GHC.Base.<> ((Data.Aeson..=) "state" (personAddressKana'State obj) GHC.Base.<> (Data.Aeson..=) "town" (personAddressKana'Town obj)))))))
instance Data.Aeson.Types.FromJSON.FromJSON PersonAddressKana'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PersonAddressKana'" (\obj -> ((((((GHC.Base.pure PersonAddressKana' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "town"))
-- | Defines the data type for the schema personAddress_kanji\'
-- 
-- 
data PersonAddressKanji' = PersonAddressKanji' {
  -- | city: City\/Ward.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  personAddressKanji'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKanji'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Block\/Building number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKanji'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Building details.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKanji'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKanji'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: Prefecture.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKanji'State :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | town: Town\/cho-me.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , personAddressKanji'Town :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PersonAddressKanji'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (personAddressKanji'City obj) : (Data.Aeson..=) "country" (personAddressKanji'Country obj) : (Data.Aeson..=) "line1" (personAddressKanji'Line1 obj) : (Data.Aeson..=) "line2" (personAddressKanji'Line2 obj) : (Data.Aeson..=) "postal_code" (personAddressKanji'PostalCode obj) : (Data.Aeson..=) "state" (personAddressKanji'State obj) : (Data.Aeson..=) "town" (personAddressKanji'Town obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (personAddressKanji'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (personAddressKanji'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (personAddressKanji'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (personAddressKanji'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (personAddressKanji'PostalCode obj) GHC.Base.<> ((Data.Aeson..=) "state" (personAddressKanji'State obj) GHC.Base.<> (Data.Aeson..=) "town" (personAddressKanji'Town obj)))))))
instance Data.Aeson.Types.FromJSON.FromJSON PersonAddressKanji'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PersonAddressKanji'" (\obj -> ((((((GHC.Base.pure PersonAddressKanji' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "town"))
-- | Defines the data type for the schema personMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data PersonMetadata' = PersonMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PersonMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON PersonMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PersonMetadata'" (\obj -> GHC.Base.pure PersonMetadata')
-- | Defines the enum schema personObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data PersonObject'
    = PersonObject'EnumOther Data.Aeson.Types.Internal.Value
    | PersonObject'EnumTyped GHC.Base.String
    | PersonObject'EnumStringPerson
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PersonObject'
    where toJSON (PersonObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PersonObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PersonObject'EnumStringPerson) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "person"
instance Data.Aeson.FromJSON PersonObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "person")
                                          then PersonObject'EnumStringPerson
                                          else PersonObject'EnumOther val)
-- | Defines the data type for the schema personRequirements\'
-- 
-- 
data PersonRequirements' = PersonRequirements' {
  -- | currently_due: Fields that need to be collected to keep the person\'s account enabled. If not collected by the account\'s \`current_deadline\`, these fields appear in \`past_due\` as well, and the account is disabled.
  personRequirements'CurrentlyDue :: (GHC.Maybe.Maybe ([] GHC.Base.String))
  -- | errors: The fields that need to be collected again because validation or verification failed for some reason.
  , personRequirements'Errors :: (GHC.Maybe.Maybe ([] AccountRequirementsError))
  -- | eventually_due: Fields that need to be collected assuming all volume thresholds are reached. As fields are needed, they are moved to \`currently_due\` and the account\'s \`current_deadline\` is set.
  , personRequirements'EventuallyDue :: (GHC.Maybe.Maybe ([] GHC.Base.String))
  -- | past_due: Fields that weren\'t collected by the account\'s \`current_deadline\`. These fields need to be collected to enable payouts for the person\'s account.
  , personRequirements'PastDue :: (GHC.Maybe.Maybe ([] GHC.Base.String))
  -- | pending_verification: Fields that may become required depending on the results of verification or review. An empty array unless an asynchronous verification is pending. If verification fails, the fields in this array become required and move to \`currently_due\` or \`past_due\`.
  , personRequirements'PendingVerification :: (GHC.Maybe.Maybe ([] GHC.Base.String))
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PersonRequirements'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "currently_due" (personRequirements'CurrentlyDue obj) : (Data.Aeson..=) "errors" (personRequirements'Errors obj) : (Data.Aeson..=) "eventually_due" (personRequirements'EventuallyDue obj) : (Data.Aeson..=) "past_due" (personRequirements'PastDue obj) : (Data.Aeson..=) "pending_verification" (personRequirements'PendingVerification obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "currently_due" (personRequirements'CurrentlyDue obj) GHC.Base.<> ((Data.Aeson..=) "errors" (personRequirements'Errors obj) GHC.Base.<> ((Data.Aeson..=) "eventually_due" (personRequirements'EventuallyDue obj) GHC.Base.<> ((Data.Aeson..=) "past_due" (personRequirements'PastDue obj) GHC.Base.<> (Data.Aeson..=) "pending_verification" (personRequirements'PendingVerification obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON PersonRequirements'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PersonRequirements'" (\obj -> ((((GHC.Base.pure PersonRequirements' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currently_due")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "errors")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eventually_due")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "past_due")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "pending_verification"))
-- | Defines the data type for the schema plan
-- 
-- Plans define the base price, currency, and billing cycle for subscriptions.
-- For example, you might have a \<currency>5\<\/currency>\/month plan
-- that provides limited access to your products, and a
-- \<currency>15\<\/currency>\/month plan that allows full access.
-- 
-- Related guide: [Managing Products and Plans](https:\/\/stripe.com\/docs\/billing\/subscriptions\/products-and-plans).
data Plan = Plan {
  -- | active: Whether the plan is currently available for new subscriptions.
  planActive :: GHC.Types.Bool
  -- | aggregate_usage: Specifies a usage aggregation strategy for plans of \`usage_type=metered\`. Allowed values are \`sum\` for summing up all usage during a period, \`last_during_period\` for using the last usage record reported within a period, \`last_ever\` for using the last usage record ever (across period bounds) or \`max\` which uses the usage record with the maximum reported usage during a period. Defaults to \`sum\`.
  , planAggregateUsage :: (GHC.Maybe.Maybe PlanAggregateUsage')
  -- | amount: The amount in %s to be charged on the interval specified.
  , planAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | amount_decimal: Same as \`amount\`, but contains a decimal value with at most 12 decimal places.
  , planAmountDecimal :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | billing_scheme: Describes how to compute the price per period. Either \`per_unit\` or \`tiered\`. \`per_unit\` indicates that the fixed amount (specified in \`amount\`) will be charged per unit in \`quantity\` (for plans with \`usage_type=licensed\`), or per unit of total usage (for plans with \`usage_type=metered\`). \`tiered\` indicates that the unit pricing will be computed using a tiering strategy as defined using the \`tiers\` and \`tiers_mode\` attributes.
  , planBillingScheme :: (GHC.Maybe.Maybe PlanBillingScheme')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , planCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , planCurrency :: GHC.Base.String
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , planId :: GHC.Base.String
  -- | interval: The frequency at which a subscription is billed. One of \`day\`, \`week\`, \`month\` or \`year\`.
  , planInterval :: PlanInterval'
  -- | interval_count: The number of intervals (specified in the \`interval\` attribute) between subscription billings. For example, \`interval=month\` and \`interval_count=3\` bills every 3 months.
  , planIntervalCount :: GHC.Integer.Type.Integer
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , planLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , planMetadata :: PlanMetadata'
  -- | nickname: A brief description of the plan, hidden from customers.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , planNickname :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , planObject :: PlanObject'
  -- | product: The product whose pricing this plan determines.
  , planProduct :: (GHC.Maybe.Maybe PlanProduct'Variants)
  -- | tiers: Each element represents a pricing tier. This parameter requires \`billing_scheme\` to be set to \`tiered\`. See also the documentation for \`billing_scheme\`.
  , planTiers :: (GHC.Maybe.Maybe ([] PlanTier))
  -- | tiers_mode: Defines if the tiering price should be \`graduated\` or \`volume\` based. In \`volume\`-based tiering, the maximum quantity within a period determines the per unit price. In \`graduated\` tiering, pricing can change as the quantity grows.
  , planTiersMode :: (GHC.Maybe.Maybe PlanTiersMode')
  -- | transform_usage: Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with \`tiers\`.
  , planTransformUsage :: (GHC.Maybe.Maybe PlanTransformUsage')
  -- | trial_period_days: Default number of trial days when subscribing a customer to this plan using [\`trial_from_plan=true\`](https:\/\/stripe.com\/docs\/api\#create_subscription-trial_from_plan).
  , planTrialPeriodDays :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | usage_type: Configures how the quantity per period should be determined. Can be either \`metered\` or \`licensed\`. \`licensed\` automatically bills the \`quantity\` set when adding it to a subscription. \`metered\` aggregates the total usage based on usage records. Defaults to \`licensed\`.
  , planUsageType :: PlanUsageType'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Plan
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "active" (planActive obj) : (Data.Aeson..=) "aggregate_usage" (planAggregateUsage obj) : (Data.Aeson..=) "amount" (planAmount obj) : (Data.Aeson..=) "amount_decimal" (planAmountDecimal obj) : (Data.Aeson..=) "billing_scheme" (planBillingScheme obj) : (Data.Aeson..=) "created" (planCreated obj) : (Data.Aeson..=) "currency" (planCurrency obj) : (Data.Aeson..=) "id" (planId obj) : (Data.Aeson..=) "interval" (planInterval obj) : (Data.Aeson..=) "interval_count" (planIntervalCount obj) : (Data.Aeson..=) "livemode" (planLivemode obj) : (Data.Aeson..=) "metadata" (planMetadata obj) : (Data.Aeson..=) "nickname" (planNickname obj) : (Data.Aeson..=) "object" (planObject obj) : (Data.Aeson..=) "product" (planProduct obj) : (Data.Aeson..=) "tiers" (planTiers obj) : (Data.Aeson..=) "tiers_mode" (planTiersMode obj) : (Data.Aeson..=) "transform_usage" (planTransformUsage obj) : (Data.Aeson..=) "trial_period_days" (planTrialPeriodDays obj) : (Data.Aeson..=) "usage_type" (planUsageType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "active" (planActive obj) GHC.Base.<> ((Data.Aeson..=) "aggregate_usage" (planAggregateUsage obj) GHC.Base.<> ((Data.Aeson..=) "amount" (planAmount obj) GHC.Base.<> ((Data.Aeson..=) "amount_decimal" (planAmountDecimal obj) GHC.Base.<> ((Data.Aeson..=) "billing_scheme" (planBillingScheme obj) GHC.Base.<> ((Data.Aeson..=) "created" (planCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (planCurrency obj) GHC.Base.<> ((Data.Aeson..=) "id" (planId obj) GHC.Base.<> ((Data.Aeson..=) "interval" (planInterval obj) GHC.Base.<> ((Data.Aeson..=) "interval_count" (planIntervalCount obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (planLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (planMetadata obj) GHC.Base.<> ((Data.Aeson..=) "nickname" (planNickname obj) GHC.Base.<> ((Data.Aeson..=) "object" (planObject obj) GHC.Base.<> ((Data.Aeson..=) "product" (planProduct obj) GHC.Base.<> ((Data.Aeson..=) "tiers" (planTiers obj) GHC.Base.<> ((Data.Aeson..=) "tiers_mode" (planTiersMode obj) GHC.Base.<> ((Data.Aeson..=) "transform_usage" (planTransformUsage obj) GHC.Base.<> ((Data.Aeson..=) "trial_period_days" (planTrialPeriodDays obj) GHC.Base.<> (Data.Aeson..=) "usage_type" (planUsageType obj))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Plan
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Plan" (\obj -> (((((((((((((((((((GHC.Base.pure Plan GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "active")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "aggregate_usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_decimal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_scheme")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "interval")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "interval_count")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "nickname")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "product")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tiers")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tiers_mode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transform_usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_period_days")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "usage_type"))
-- | Defines the enum schema planAggregate_usage\'
-- 
-- Specifies a usage aggregation strategy for plans of \`usage_type=metered\`. Allowed values are \`sum\` for summing up all usage during a period, \`last_during_period\` for using the last usage record reported within a period, \`last_ever\` for using the last usage record ever (across period bounds) or \`max\` which uses the usage record with the maximum reported usage during a period. Defaults to \`sum\`.
data PlanAggregateUsage'
    = PlanAggregateUsage'EnumOther Data.Aeson.Types.Internal.Value
    | PlanAggregateUsage'EnumTyped GHC.Base.String
    | PlanAggregateUsage'EnumStringLastDuringPeriod
    | PlanAggregateUsage'EnumStringLastEver
    | PlanAggregateUsage'EnumStringMax
    | PlanAggregateUsage'EnumStringSum
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PlanAggregateUsage'
    where toJSON (PlanAggregateUsage'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanAggregateUsage'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanAggregateUsage'EnumStringLastDuringPeriod) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_during_period"
          toJSON (PlanAggregateUsage'EnumStringLastEver) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_ever"
          toJSON (PlanAggregateUsage'EnumStringMax) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "max"
          toJSON (PlanAggregateUsage'EnumStringSum) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sum"
instance Data.Aeson.FromJSON PlanAggregateUsage'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_during_period")
                                          then PlanAggregateUsage'EnumStringLastDuringPeriod
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_ever")
                                                then PlanAggregateUsage'EnumStringLastEver
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "max")
                                                      then PlanAggregateUsage'EnumStringMax
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sum")
                                                            then PlanAggregateUsage'EnumStringSum
                                                            else PlanAggregateUsage'EnumOther val)
-- | Defines the enum schema planBilling_scheme\'
-- 
-- Describes how to compute the price per period. Either \`per_unit\` or \`tiered\`. \`per_unit\` indicates that the fixed amount (specified in \`amount\`) will be charged per unit in \`quantity\` (for plans with \`usage_type=licensed\`), or per unit of total usage (for plans with \`usage_type=metered\`). \`tiered\` indicates that the unit pricing will be computed using a tiering strategy as defined using the \`tiers\` and \`tiers_mode\` attributes.
data PlanBillingScheme'
    = PlanBillingScheme'EnumOther Data.Aeson.Types.Internal.Value
    | PlanBillingScheme'EnumTyped GHC.Base.String
    | PlanBillingScheme'EnumStringPerUnit
    | PlanBillingScheme'EnumStringTiered
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PlanBillingScheme'
    where toJSON (PlanBillingScheme'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanBillingScheme'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanBillingScheme'EnumStringPerUnit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "per_unit"
          toJSON (PlanBillingScheme'EnumStringTiered) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tiered"
instance Data.Aeson.FromJSON PlanBillingScheme'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "per_unit")
                                          then PlanBillingScheme'EnumStringPerUnit
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tiered")
                                                then PlanBillingScheme'EnumStringTiered
                                                else PlanBillingScheme'EnumOther val)
-- | Defines the enum schema planInterval\'
-- 
-- The frequency at which a subscription is billed. One of \`day\`, \`week\`, \`month\` or \`year\`.
data PlanInterval'
    = PlanInterval'EnumOther Data.Aeson.Types.Internal.Value
    | PlanInterval'EnumTyped GHC.Base.String
    | PlanInterval'EnumStringDay
    | PlanInterval'EnumStringMonth
    | PlanInterval'EnumStringWeek
    | PlanInterval'EnumStringYear
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PlanInterval'
    where toJSON (PlanInterval'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanInterval'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanInterval'EnumStringDay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "day"
          toJSON (PlanInterval'EnumStringMonth) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month"
          toJSON (PlanInterval'EnumStringWeek) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "week"
          toJSON (PlanInterval'EnumStringYear) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "year"
instance Data.Aeson.FromJSON PlanInterval'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "day")
                                          then PlanInterval'EnumStringDay
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month")
                                                then PlanInterval'EnumStringMonth
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "week")
                                                      then PlanInterval'EnumStringWeek
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "year")
                                                            then PlanInterval'EnumStringYear
                                                            else PlanInterval'EnumOther val)
-- | Defines the data type for the schema planMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data PlanMetadata' = PlanMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PlanMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON PlanMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PlanMetadata'" (\obj -> GHC.Base.pure PlanMetadata')
-- | Defines the enum schema planObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data PlanObject'
    = PlanObject'EnumOther Data.Aeson.Types.Internal.Value
    | PlanObject'EnumTyped GHC.Base.String
    | PlanObject'EnumStringPlan
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PlanObject'
    where toJSON (PlanObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanObject'EnumStringPlan) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plan"
instance Data.Aeson.FromJSON PlanObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plan")
                                          then PlanObject'EnumStringPlan
                                          else PlanObject'EnumOther val)
-- | Define the one-of schema planProduct\'
-- 
-- The product whose pricing this plan determines.
data PlanProduct'Variants
    = PlanProduct'DeletedProduct DeletedProduct
    | PlanProduct'Product Product
    | PlanProduct'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON PlanProduct'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON PlanProduct'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema planTiers_mode\'
-- 
-- Defines if the tiering price should be \`graduated\` or \`volume\` based. In \`volume\`-based tiering, the maximum quantity within a period determines the per unit price. In \`graduated\` tiering, pricing can change as the quantity grows.
data PlanTiersMode'
    = PlanTiersMode'EnumOther Data.Aeson.Types.Internal.Value
    | PlanTiersMode'EnumTyped GHC.Base.String
    | PlanTiersMode'EnumStringGraduated
    | PlanTiersMode'EnumStringVolume
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PlanTiersMode'
    where toJSON (PlanTiersMode'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanTiersMode'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanTiersMode'EnumStringGraduated) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "graduated"
          toJSON (PlanTiersMode'EnumStringVolume) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "volume"
instance Data.Aeson.FromJSON PlanTiersMode'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "graduated")
                                          then PlanTiersMode'EnumStringGraduated
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "volume")
                                                then PlanTiersMode'EnumStringVolume
                                                else PlanTiersMode'EnumOther val)
-- | Defines the data type for the schema planTransform_usage\'
-- 
-- Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with \\\`tiers\\\`.
data PlanTransformUsage' = PlanTransformUsage' {
  -- | divide_by: Divide usage by this number.
  planTransformUsage'DivideBy :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | round: After division, either round the result \`up\` or \`down\`.
  , planTransformUsage'Round :: (GHC.Maybe.Maybe PlanTransformUsage'Round')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON PlanTransformUsage'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "divide_by" (planTransformUsage'DivideBy obj) : (Data.Aeson..=) "round" (planTransformUsage'Round obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "divide_by" (planTransformUsage'DivideBy obj) GHC.Base.<> (Data.Aeson..=) "round" (planTransformUsage'Round obj))
instance Data.Aeson.Types.FromJSON.FromJSON PlanTransformUsage'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "PlanTransformUsage'" (\obj -> (GHC.Base.pure PlanTransformUsage' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "divide_by")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "round"))
-- | Defines the enum schema planTransform_usage\'Round\'
-- 
-- After division, either round the result \`up\` or \`down\`.
data PlanTransformUsage'Round'
    = PlanTransformUsage'Round'EnumOther Data.Aeson.Types.Internal.Value
    | PlanTransformUsage'Round'EnumTyped GHC.Base.String
    | PlanTransformUsage'Round'EnumStringDown
    | PlanTransformUsage'Round'EnumStringUp
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PlanTransformUsage'Round'
    where toJSON (PlanTransformUsage'Round'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanTransformUsage'Round'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanTransformUsage'Round'EnumStringDown) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "down"
          toJSON (PlanTransformUsage'Round'EnumStringUp) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "up"
instance Data.Aeson.FromJSON PlanTransformUsage'Round'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "down")
                                          then PlanTransformUsage'Round'EnumStringDown
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "up")
                                                then PlanTransformUsage'Round'EnumStringUp
                                                else PlanTransformUsage'Round'EnumOther val)
-- | Defines the enum schema planUsage_type\'
-- 
-- Configures how the quantity per period should be determined. Can be either \`metered\` or \`licensed\`. \`licensed\` automatically bills the \`quantity\` set when adding it to a subscription. \`metered\` aggregates the total usage based on usage records. Defaults to \`licensed\`.
data PlanUsageType'
    = PlanUsageType'EnumOther Data.Aeson.Types.Internal.Value
    | PlanUsageType'EnumTyped GHC.Base.String
    | PlanUsageType'EnumStringLicensed
    | PlanUsageType'EnumStringMetered
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON PlanUsageType'
    where toJSON (PlanUsageType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanUsageType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (PlanUsageType'EnumStringLicensed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "licensed"
          toJSON (PlanUsageType'EnumStringMetered) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metered"
instance Data.Aeson.FromJSON PlanUsageType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "licensed")
                                          then PlanUsageType'EnumStringLicensed
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metered")
                                                then PlanUsageType'EnumStringMetered
                                                else PlanUsageType'EnumOther val)
-- | Defines the data type for the schema product
-- 
-- Store representations of products you sell in \`Product\` objects, used in
-- conjunction with [SKUs](https:\/\/stripe.com\/docs\/api\#skus). Products may be physical goods, to be shipped, or
-- digital.
-- 
-- Documentation on \`Product\`s for use with \`Subscription\`s can be found at
-- [Subscription Products](https:\/\/stripe.com\/docs\/api\#service_products).
-- 
-- Related guide: [Define products and SKUs](https:\/\/stripe.com\/docs\/orders\#define-products-skus)
data Product = Product {
  -- | active: Whether the product is currently available for purchase.
  productActive :: GHC.Types.Bool
  -- | attributes: A list of up to 5 attributes that each SKU can provide values for (e.g., \`[\"color\", \"size\"]\`).
  , productAttributes :: (GHC.Maybe.Maybe ([] GHC.Base.String))
  -- | caption: A short one-line description of the product, meant to be displayable to the customer. Only applicable to products of \`type=good\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , productCaption :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , productCreated :: GHC.Integer.Type.Integer
  -- | deactivate_on: An array of connect application identifiers that cannot purchase this product. Only applicable to products of \`type=good\`.
  , productDeactivateOn :: (GHC.Maybe.Maybe ([] GHC.Base.String))
  -- | description: The product\'s description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , productDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , productId :: GHC.Base.String
  -- | images: A list of up to 8 URLs of images for this product, meant to be displayable to the customer. Only applicable to products of \`type=good\`.
  , productImages :: ([] GHC.Base.String)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , productLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , productMetadata :: ProductMetadata'
  -- | name: The product\'s name, meant to be displayable to the customer. Whenever this product is sold via a subscription, name will show up on associated invoice line item descriptions.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , productName :: GHC.Base.String
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , productObject :: ProductObject'
  -- | package_dimensions: The dimensions of this product for shipping purposes. A SKU associated with this product can override this value by having its own \`package_dimensions\`. Only applicable to products of \`type=good\`.
  , productPackageDimensions :: (GHC.Maybe.Maybe ProductPackageDimensions')
  -- | shippable: Whether this product is a shipped good. Only applicable to products of \`type=good\`.
  , productShippable :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | statement_descriptor: Extra information about a product which will appear on your customer\'s credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , productStatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | type: The type of the product. The product is either of type \`good\`, which is eligible for use with Orders and SKUs, or \`service\`, which is eligible for use with Subscriptions and Plans.
  , productType :: ProductType'
  -- | unit_label: A label that represents units of this product in Stripe and on customers’ receipts and invoices. When set, this will be included in associated invoice line item descriptions.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , productUnitLabel :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | updated: Time at which the object was last updated. Measured in seconds since the Unix epoch.
  , productUpdated :: GHC.Integer.Type.Integer
  -- | url: A URL of a publicly-accessible webpage for this product. Only applicable to products of \`type=good\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 2048
  , productUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Product
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "active" (productActive obj) : (Data.Aeson..=) "attributes" (productAttributes obj) : (Data.Aeson..=) "caption" (productCaption obj) : (Data.Aeson..=) "created" (productCreated obj) : (Data.Aeson..=) "deactivate_on" (productDeactivateOn obj) : (Data.Aeson..=) "description" (productDescription obj) : (Data.Aeson..=) "id" (productId obj) : (Data.Aeson..=) "images" (productImages obj) : (Data.Aeson..=) "livemode" (productLivemode obj) : (Data.Aeson..=) "metadata" (productMetadata obj) : (Data.Aeson..=) "name" (productName obj) : (Data.Aeson..=) "object" (productObject obj) : (Data.Aeson..=) "package_dimensions" (productPackageDimensions obj) : (Data.Aeson..=) "shippable" (productShippable obj) : (Data.Aeson..=) "statement_descriptor" (productStatementDescriptor obj) : (Data.Aeson..=) "type" (productType obj) : (Data.Aeson..=) "unit_label" (productUnitLabel obj) : (Data.Aeson..=) "updated" (productUpdated obj) : (Data.Aeson..=) "url" (productUrl obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "active" (productActive obj) GHC.Base.<> ((Data.Aeson..=) "attributes" (productAttributes obj) GHC.Base.<> ((Data.Aeson..=) "caption" (productCaption obj) GHC.Base.<> ((Data.Aeson..=) "created" (productCreated obj) GHC.Base.<> ((Data.Aeson..=) "deactivate_on" (productDeactivateOn obj) GHC.Base.<> ((Data.Aeson..=) "description" (productDescription obj) GHC.Base.<> ((Data.Aeson..=) "id" (productId obj) GHC.Base.<> ((Data.Aeson..=) "images" (productImages obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (productLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (productMetadata obj) GHC.Base.<> ((Data.Aeson..=) "name" (productName obj) GHC.Base.<> ((Data.Aeson..=) "object" (productObject obj) GHC.Base.<> ((Data.Aeson..=) "package_dimensions" (productPackageDimensions obj) GHC.Base.<> ((Data.Aeson..=) "shippable" (productShippable obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (productStatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "type" (productType obj) GHC.Base.<> ((Data.Aeson..=) "unit_label" (productUnitLabel obj) GHC.Base.<> ((Data.Aeson..=) "updated" (productUpdated obj) GHC.Base.<> (Data.Aeson..=) "url" (productUrl obj)))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Product
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Product" (\obj -> ((((((((((((((((((GHC.Base.pure Product GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "active")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "attributes")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "caption")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "deactivate_on")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "images")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "package_dimensions")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "shippable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "unit_label")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "updated")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "url"))
-- | Defines the data type for the schema productMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data ProductMetadata' = ProductMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ProductMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON ProductMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ProductMetadata'" (\obj -> GHC.Base.pure ProductMetadata')
-- | Defines the enum schema productObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data ProductObject'
    = ProductObject'EnumOther Data.Aeson.Types.Internal.Value
    | ProductObject'EnumTyped GHC.Base.String
    | ProductObject'EnumStringProduct
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ProductObject'
    where toJSON (ProductObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ProductObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ProductObject'EnumStringProduct) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "product"
instance Data.Aeson.FromJSON ProductObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "product")
                                          then ProductObject'EnumStringProduct
                                          else ProductObject'EnumOther val)
-- | Defines the data type for the schema productPackage_dimensions\'
-- 
-- The dimensions of this product for shipping purposes. A SKU associated with this product can override this value by having its own \\\`package_dimensions\\\`. Only applicable to products of \\\`type=good\\\`.
data ProductPackageDimensions' = ProductPackageDimensions' {
  -- | height: Height, in inches.
  productPackageDimensions'Height :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | length: Length, in inches.
  , productPackageDimensions'Length :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | weight: Weight, in ounces.
  , productPackageDimensions'Weight :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | width: Width, in inches.
  , productPackageDimensions'Width :: (GHC.Maybe.Maybe GHC.Types.Double)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ProductPackageDimensions'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "height" (productPackageDimensions'Height obj) : (Data.Aeson..=) "length" (productPackageDimensions'Length obj) : (Data.Aeson..=) "weight" (productPackageDimensions'Weight obj) : (Data.Aeson..=) "width" (productPackageDimensions'Width obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "height" (productPackageDimensions'Height obj) GHC.Base.<> ((Data.Aeson..=) "length" (productPackageDimensions'Length obj) GHC.Base.<> ((Data.Aeson..=) "weight" (productPackageDimensions'Weight obj) GHC.Base.<> (Data.Aeson..=) "width" (productPackageDimensions'Width obj))))
instance Data.Aeson.Types.FromJSON.FromJSON ProductPackageDimensions'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ProductPackageDimensions'" (\obj -> (((GHC.Base.pure ProductPackageDimensions' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "height")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "length")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "weight")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "width"))
-- | Defines the enum schema productType\'
-- 
-- The type of the product. The product is either of type \`good\`, which is eligible for use with Orders and SKUs, or \`service\`, which is eligible for use with Subscriptions and Plans.
data ProductType'
    = ProductType'EnumOther Data.Aeson.Types.Internal.Value
    | ProductType'EnumTyped GHC.Base.String
    | ProductType'EnumStringGood
    | ProductType'EnumStringService
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ProductType'
    where toJSON (ProductType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ProductType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ProductType'EnumStringGood) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "good"
          toJSON (ProductType'EnumStringService) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "service"
instance Data.Aeson.FromJSON ProductType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "good")
                                          then ProductType'EnumStringGood
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "service")
                                                then ProductType'EnumStringService
                                                else ProductType'EnumOther val)
-- | Defines the data type for the schema radar.early_fraud_warning
-- 
-- An early fraud warning indicates that the card issuer has notified us that a
-- charge may be fraudulent.
-- 
-- Related guide: [Early Fraud Warnings](https:\/\/stripe.com\/docs\/disputes\/measuring\#early-fraud-warnings).
data Radar'earlyFraudWarning = Radar'earlyFraudWarning {
  -- | actionable: An EFW is actionable if it has not received a dispute and has not been fully refunded. You may wish to proactively refund a charge that receives an EFW, in order to avoid receiving a dispute later.
  radar'earlyFraudWarningActionable :: GHC.Types.Bool
  -- | charge: ID of the charge this early fraud warning is for, optionally expanded.
  , radar'earlyFraudWarningCharge :: Radar'earlyFraudWarningCharge'Variants
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , radar'earlyFraudWarningCreated :: GHC.Integer.Type.Integer
  -- | fraud_type: The type of fraud labelled by the issuer. One of \`card_never_received\`, \`fraudulent_card_application\`, \`made_with_counterfeit_card\`, \`made_with_lost_card\`, \`made_with_stolen_card\`, \`misc\`, \`unauthorized_use_of_card\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , radar'earlyFraudWarningFraudType :: GHC.Base.String
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , radar'earlyFraudWarningId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , radar'earlyFraudWarningLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , radar'earlyFraudWarningObject :: Radar'earlyFraudWarningObject'
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Radar'earlyFraudWarning
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "actionable" (radar'earlyFraudWarningActionable obj) : (Data.Aeson..=) "charge" (radar'earlyFraudWarningCharge obj) : (Data.Aeson..=) "created" (radar'earlyFraudWarningCreated obj) : (Data.Aeson..=) "fraud_type" (radar'earlyFraudWarningFraudType obj) : (Data.Aeson..=) "id" (radar'earlyFraudWarningId obj) : (Data.Aeson..=) "livemode" (radar'earlyFraudWarningLivemode obj) : (Data.Aeson..=) "object" (radar'earlyFraudWarningObject obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "actionable" (radar'earlyFraudWarningActionable obj) GHC.Base.<> ((Data.Aeson..=) "charge" (radar'earlyFraudWarningCharge obj) GHC.Base.<> ((Data.Aeson..=) "created" (radar'earlyFraudWarningCreated obj) GHC.Base.<> ((Data.Aeson..=) "fraud_type" (radar'earlyFraudWarningFraudType obj) GHC.Base.<> ((Data.Aeson..=) "id" (radar'earlyFraudWarningId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (radar'earlyFraudWarningLivemode obj) GHC.Base.<> (Data.Aeson..=) "object" (radar'earlyFraudWarningObject obj)))))))
instance Data.Aeson.Types.FromJSON.FromJSON Radar'earlyFraudWarning
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Radar'earlyFraudWarning" (\obj -> ((((((GHC.Base.pure Radar'earlyFraudWarning GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "actionable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "fraud_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object"))
-- | Define the one-of schema radar.early_fraud_warningCharge\'
-- 
-- ID of the charge this early fraud warning is for, optionally expanded.
data Radar'earlyFraudWarningCharge'Variants
    = Radar'earlyFraudWarningCharge'Charge Charge
    | Radar'earlyFraudWarningCharge'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON Radar'earlyFraudWarningCharge'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON Radar'earlyFraudWarningCharge'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema radar.early_fraud_warningObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Radar'earlyFraudWarningObject'
    = Radar'earlyFraudWarningObject'EnumOther Data.Aeson.Types.Internal.Value
    | Radar'earlyFraudWarningObject'EnumTyped GHC.Base.String
    | Radar'earlyFraudWarningObject'EnumStringRadar'earlyFraudWarning
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Radar'earlyFraudWarningObject'
    where toJSON (Radar'earlyFraudWarningObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Radar'earlyFraudWarningObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Radar'earlyFraudWarningObject'EnumStringRadar'earlyFraudWarning) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "radar.early_fraud_warning"
instance Data.Aeson.FromJSON Radar'earlyFraudWarningObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "radar.early_fraud_warning")
                                          then Radar'earlyFraudWarningObject'EnumStringRadar'earlyFraudWarning
                                          else Radar'earlyFraudWarningObject'EnumOther val)
-- | Defines the data type for the schema recipient
-- 
-- With \`Recipient\` objects, you can transfer money from your Stripe account to a
-- third-party bank account or debit card. The API allows you to create, delete,
-- and update your recipients. You can retrieve individual recipients as well as
-- a list of all your recipients.
-- 
-- **\`Recipient\` objects have been deprecated in favor of
-- [Connect](https:\/\/stripe.com\/docs\/connect), specifically Connect\'s much more powerful
-- [Account objects](https:\/\/stripe.com\/docs\/api\#account). Stripe accounts that don\'t already use
-- recipients can no longer begin doing so. Please use \`Account\` objects
-- instead. If you are already using recipients, please see our
-- [migration guide](https:\/\/stripe.com\/docs\/connect\/recipient-account-migrations) for more information.**
data Recipient = Recipient {
  -- | active_account: Hash describing the current account on the recipient, if there is one.
  recipientActiveAccount :: (GHC.Maybe.Maybe RecipientActiveAccount')
  -- | cards: 
  , recipientCards :: (GHC.Maybe.Maybe RecipientCards')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , recipientCreated :: GHC.Integer.Type.Integer
  -- | default_card: The default card to use for creating transfers to this recipient.
  , recipientDefaultCard :: (GHC.Maybe.Maybe RecipientDefaultCard'Variants)
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | email
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , recipientLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , recipientMetadata :: RecipientMetadata'
  -- | migrated_to: The ID of the [Custom account](https:\/\/stripe.com\/docs\/connect\/custom-accounts) this recipient was migrated to. If set, the recipient can no longer be updated, nor can transfers be made to it: use the Custom account instead.
  , recipientMigratedTo :: (GHC.Maybe.Maybe RecipientMigratedTo'Variants)
  -- | name: Full, legal name of the recipient.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , recipientObject :: RecipientObject'
  -- | rolled_back_from
  , recipientRolledBackFrom :: (GHC.Maybe.Maybe RecipientRolledBackFrom'Variants)
  -- | type: Type of the recipient, one of \`individual\` or \`corporation\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientType :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Recipient
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "active_account" (recipientActiveAccount obj) : (Data.Aeson..=) "cards" (recipientCards obj) : (Data.Aeson..=) "created" (recipientCreated obj) : (Data.Aeson..=) "default_card" (recipientDefaultCard obj) : (Data.Aeson..=) "description" (recipientDescription obj) : (Data.Aeson..=) "email" (recipientEmail obj) : (Data.Aeson..=) "id" (recipientId obj) : (Data.Aeson..=) "livemode" (recipientLivemode obj) : (Data.Aeson..=) "metadata" (recipientMetadata obj) : (Data.Aeson..=) "migrated_to" (recipientMigratedTo obj) : (Data.Aeson..=) "name" (recipientName obj) : (Data.Aeson..=) "object" (recipientObject obj) : (Data.Aeson..=) "rolled_back_from" (recipientRolledBackFrom obj) : (Data.Aeson..=) "type" (recipientType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "active_account" (recipientActiveAccount obj) GHC.Base.<> ((Data.Aeson..=) "cards" (recipientCards obj) GHC.Base.<> ((Data.Aeson..=) "created" (recipientCreated obj) GHC.Base.<> ((Data.Aeson..=) "default_card" (recipientDefaultCard obj) GHC.Base.<> ((Data.Aeson..=) "description" (recipientDescription obj) GHC.Base.<> ((Data.Aeson..=) "email" (recipientEmail obj) GHC.Base.<> ((Data.Aeson..=) "id" (recipientId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (recipientLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (recipientMetadata obj) GHC.Base.<> ((Data.Aeson..=) "migrated_to" (recipientMigratedTo obj) GHC.Base.<> ((Data.Aeson..=) "name" (recipientName obj) GHC.Base.<> ((Data.Aeson..=) "object" (recipientObject obj) GHC.Base.<> ((Data.Aeson..=) "rolled_back_from" (recipientRolledBackFrom obj) GHC.Base.<> (Data.Aeson..=) "type" (recipientType obj))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Recipient
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Recipient" (\obj -> (((((((((((((GHC.Base.pure Recipient GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "active_account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cards")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "migrated_to")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "rolled_back_from")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Defines the data type for the schema recipientActive_account\'
-- 
-- Hash describing the current account on the recipient, if there is one.
data RecipientActiveAccount' = RecipientActiveAccount' {
  -- | account: The ID of the account that the bank account is associated with.
  recipientActiveAccount'Account :: (GHC.Maybe.Maybe RecipientActiveAccount'Account'Variants)
  -- | account_holder_name: The name of the person or business that owns the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientActiveAccount'AccountHolderName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientActiveAccount'AccountHolderType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientActiveAccount'BankName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter ISO code representing the country the bank account is located in.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientActiveAccount'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  , recipientActiveAccount'Currency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The ID of the customer that the bank account is associated with.
  , recipientActiveAccount'Customer :: (GHC.Maybe.Maybe RecipientActiveAccount'Customer'Variants)
  -- | default_for_currency: Whether this bank account is the default external account for its currency.
  , recipientActiveAccount'DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientActiveAccount'Fingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientActiveAccount'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | last4: The last four digits of the bank account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientActiveAccount'Last4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , recipientActiveAccount'Metadata :: (GHC.Maybe.Maybe RecipientActiveAccount'Metadata')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , recipientActiveAccount'Object :: (GHC.Maybe.Maybe RecipientActiveAccount'Object')
  -- | routing_number: The routing transit number for the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientActiveAccount'RoutingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
  -- 
  -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientActiveAccount'Status :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON RecipientActiveAccount'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (recipientActiveAccount'Account obj) : (Data.Aeson..=) "account_holder_name" (recipientActiveAccount'AccountHolderName obj) : (Data.Aeson..=) "account_holder_type" (recipientActiveAccount'AccountHolderType obj) : (Data.Aeson..=) "bank_name" (recipientActiveAccount'BankName obj) : (Data.Aeson..=) "country" (recipientActiveAccount'Country obj) : (Data.Aeson..=) "currency" (recipientActiveAccount'Currency obj) : (Data.Aeson..=) "customer" (recipientActiveAccount'Customer obj) : (Data.Aeson..=) "default_for_currency" (recipientActiveAccount'DefaultForCurrency obj) : (Data.Aeson..=) "fingerprint" (recipientActiveAccount'Fingerprint obj) : (Data.Aeson..=) "id" (recipientActiveAccount'Id obj) : (Data.Aeson..=) "last4" (recipientActiveAccount'Last4 obj) : (Data.Aeson..=) "metadata" (recipientActiveAccount'Metadata obj) : (Data.Aeson..=) "object" (recipientActiveAccount'Object obj) : (Data.Aeson..=) "routing_number" (recipientActiveAccount'RoutingNumber obj) : (Data.Aeson..=) "status" (recipientActiveAccount'Status obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (recipientActiveAccount'Account obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_name" (recipientActiveAccount'AccountHolderName obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_type" (recipientActiveAccount'AccountHolderType obj) GHC.Base.<> ((Data.Aeson..=) "bank_name" (recipientActiveAccount'BankName obj) GHC.Base.<> ((Data.Aeson..=) "country" (recipientActiveAccount'Country obj) GHC.Base.<> ((Data.Aeson..=) "currency" (recipientActiveAccount'Currency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (recipientActiveAccount'Customer obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (recipientActiveAccount'DefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (recipientActiveAccount'Fingerprint obj) GHC.Base.<> ((Data.Aeson..=) "id" (recipientActiveAccount'Id obj) GHC.Base.<> ((Data.Aeson..=) "last4" (recipientActiveAccount'Last4 obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (recipientActiveAccount'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (recipientActiveAccount'Object obj) GHC.Base.<> ((Data.Aeson..=) "routing_number" (recipientActiveAccount'RoutingNumber obj) GHC.Base.<> (Data.Aeson..=) "status" (recipientActiveAccount'Status obj)))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON RecipientActiveAccount'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "RecipientActiveAccount'" (\obj -> ((((((((((((((GHC.Base.pure RecipientActiveAccount' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status"))
-- | Define the one-of schema recipientActive_account\'Account\'
-- 
-- The ID of the account that the bank account is associated with.
data RecipientActiveAccount'Account'Variants
    = RecipientActiveAccount'Account'Account Account
    | RecipientActiveAccount'Account'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RecipientActiveAccount'Account'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RecipientActiveAccount'Account'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema recipientActive_account\'Customer\'
-- 
-- The ID of the customer that the bank account is associated with.
data RecipientActiveAccount'Customer'Variants
    = RecipientActiveAccount'Customer'Customer Customer
    | RecipientActiveAccount'Customer'DeletedCustomer DeletedCustomer
    | RecipientActiveAccount'Customer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RecipientActiveAccount'Customer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RecipientActiveAccount'Customer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema recipientActive_account\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data RecipientActiveAccount'Metadata' = RecipientActiveAccount'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON RecipientActiveAccount'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON RecipientActiveAccount'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "RecipientActiveAccount'Metadata'" (\obj -> GHC.Base.pure RecipientActiveAccount'Metadata')
-- | Defines the enum schema recipientActive_account\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data RecipientActiveAccount'Object'
    = RecipientActiveAccount'Object'EnumOther Data.Aeson.Types.Internal.Value
    | RecipientActiveAccount'Object'EnumTyped GHC.Base.String
    | RecipientActiveAccount'Object'EnumStringBankAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON RecipientActiveAccount'Object'
    where toJSON (RecipientActiveAccount'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (RecipientActiveAccount'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (RecipientActiveAccount'Object'EnumStringBankAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account"
instance Data.Aeson.FromJSON RecipientActiveAccount'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account")
                                          then RecipientActiveAccount'Object'EnumStringBankAccount
                                          else RecipientActiveAccount'Object'EnumOther val)
-- | Defines the data type for the schema recipientCards\'
-- 
-- 
data RecipientCards' = RecipientCards' {
  -- | data
  recipientCards'Data :: ([] Card)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , recipientCards'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , recipientCards'Object :: RecipientCards'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , recipientCards'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON RecipientCards'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (recipientCards'Data obj) : (Data.Aeson..=) "has_more" (recipientCards'HasMore obj) : (Data.Aeson..=) "object" (recipientCards'Object obj) : (Data.Aeson..=) "url" (recipientCards'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (recipientCards'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (recipientCards'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (recipientCards'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (recipientCards'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON RecipientCards'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "RecipientCards'" (\obj -> (((GHC.Base.pure RecipientCards' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema recipientCards\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data RecipientCards'Object'
    = RecipientCards'Object'EnumOther Data.Aeson.Types.Internal.Value
    | RecipientCards'Object'EnumTyped GHC.Base.String
    | RecipientCards'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON RecipientCards'Object'
    where toJSON (RecipientCards'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (RecipientCards'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (RecipientCards'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON RecipientCards'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then RecipientCards'Object'EnumStringList
                                          else RecipientCards'Object'EnumOther val)
-- | Define the one-of schema recipientDefault_card\'
-- 
-- The default card to use for creating transfers to this recipient.
data RecipientDefaultCard'Variants
    = RecipientDefaultCard'Card Card
    | RecipientDefaultCard'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RecipientDefaultCard'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RecipientDefaultCard'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema recipientMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data RecipientMetadata' = RecipientMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON RecipientMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON RecipientMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "RecipientMetadata'" (\obj -> GHC.Base.pure RecipientMetadata')
-- | Define the one-of schema recipientMigrated_to\'
-- 
-- The ID of the [Custom account](https:\/\/stripe.com\/docs\/connect\/custom-accounts) this recipient was migrated to. If set, the recipient can no longer be updated, nor can transfers be made to it: use the Custom account instead.
data RecipientMigratedTo'Variants
    = RecipientMigratedTo'Account Account
    | RecipientMigratedTo'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RecipientMigratedTo'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RecipientMigratedTo'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema recipientObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data RecipientObject'
    = RecipientObject'EnumOther Data.Aeson.Types.Internal.Value
    | RecipientObject'EnumTyped GHC.Base.String
    | RecipientObject'EnumStringRecipient
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON RecipientObject'
    where toJSON (RecipientObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (RecipientObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (RecipientObject'EnumStringRecipient) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "recipient"
instance Data.Aeson.FromJSON RecipientObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "recipient")
                                          then RecipientObject'EnumStringRecipient
                                          else RecipientObject'EnumOther val)
-- | Define the one-of schema recipientRolled_back_from\'
-- 
-- 
data RecipientRolledBackFrom'Variants
    = RecipientRolledBackFrom'Account Account
    | RecipientRolledBackFrom'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RecipientRolledBackFrom'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RecipientRolledBackFrom'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema refund
-- 
-- \`Refund\` objects allow you to refund a charge that has previously been created
-- but not yet refunded. Funds will be refunded to the credit or debit card that
-- was originally charged.
-- 
-- Related guide: [Refunds](https:\/\/stripe.com\/docs\/refunds).
data Refund = Refund {
  -- | amount: Amount, in %s.
  refundAmount :: GHC.Integer.Type.Integer
  -- | balance_transaction: Balance transaction that describes the impact on your account balance.
  , refundBalanceTransaction :: (GHC.Maybe.Maybe RefundBalanceTransaction'Variants)
  -- | charge: ID of the charge that was refunded.
  , refundCharge :: (GHC.Maybe.Maybe RefundCharge'Variants)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , refundCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , refundCurrency :: GHC.Base.String
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , refundDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | failure_balance_transaction: If the refund failed, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction.
  , refundFailureBalanceTransaction :: (GHC.Maybe.Maybe RefundFailureBalanceTransaction'Variants)
  -- | failure_reason: If the refund failed, the reason for refund failure if known. Possible values are \`lost_or_stolen_card\`, \`expired_or_canceled_card\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , refundFailureReason :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , refundId :: GHC.Base.String
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , refundMetadata :: RefundMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , refundObject :: RefundObject'
  -- | payment_intent: ID of the PaymentIntent that was refunded.
  , refundPaymentIntent :: (GHC.Maybe.Maybe RefundPaymentIntent'Variants)
  -- | reason: Reason for the refund, either user-provided (\`duplicate\`, \`fraudulent\`, or \`requested_by_customer\`) or generated by Stripe internally (\`expired_uncaptured_charge\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , refundReason :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | receipt_number: This is the transaction number that appears on email receipts sent for this refund.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , refundReceiptNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | source_transfer_reversal: The transfer reversal that is associated with the refund. Only present if the charge came from another Stripe account. See the Connect documentation for details.
  , refundSourceTransferReversal :: (GHC.Maybe.Maybe RefundSourceTransferReversal'Variants)
  -- | status: Status of the refund. For credit card refunds, this can be \`pending\`, \`succeeded\`, or \`failed\`. For other types of refunds, it can be \`pending\`, \`succeeded\`, \`failed\`, or \`canceled\`. Refer to our [refunds](https:\/\/stripe.com\/docs\/refunds\#failed-refunds) documentation for more details.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , refundStatus :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | transfer_reversal: If the accompanying transfer was reversed, the transfer reversal object. Only applicable if the charge was created using the destination parameter.
  , refundTransferReversal :: (GHC.Maybe.Maybe RefundTransferReversal'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Refund
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (refundAmount obj) : (Data.Aeson..=) "balance_transaction" (refundBalanceTransaction obj) : (Data.Aeson..=) "charge" (refundCharge obj) : (Data.Aeson..=) "created" (refundCreated obj) : (Data.Aeson..=) "currency" (refundCurrency obj) : (Data.Aeson..=) "description" (refundDescription obj) : (Data.Aeson..=) "failure_balance_transaction" (refundFailureBalanceTransaction obj) : (Data.Aeson..=) "failure_reason" (refundFailureReason obj) : (Data.Aeson..=) "id" (refundId obj) : (Data.Aeson..=) "metadata" (refundMetadata obj) : (Data.Aeson..=) "object" (refundObject obj) : (Data.Aeson..=) "payment_intent" (refundPaymentIntent obj) : (Data.Aeson..=) "reason" (refundReason obj) : (Data.Aeson..=) "receipt_number" (refundReceiptNumber obj) : (Data.Aeson..=) "source_transfer_reversal" (refundSourceTransferReversal obj) : (Data.Aeson..=) "status" (refundStatus obj) : (Data.Aeson..=) "transfer_reversal" (refundTransferReversal obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (refundAmount obj) GHC.Base.<> ((Data.Aeson..=) "balance_transaction" (refundBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "charge" (refundCharge obj) GHC.Base.<> ((Data.Aeson..=) "created" (refundCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (refundCurrency obj) GHC.Base.<> ((Data.Aeson..=) "description" (refundDescription obj) GHC.Base.<> ((Data.Aeson..=) "failure_balance_transaction" (refundFailureBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "failure_reason" (refundFailureReason obj) GHC.Base.<> ((Data.Aeson..=) "id" (refundId obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (refundMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (refundObject obj) GHC.Base.<> ((Data.Aeson..=) "payment_intent" (refundPaymentIntent obj) GHC.Base.<> ((Data.Aeson..=) "reason" (refundReason obj) GHC.Base.<> ((Data.Aeson..=) "receipt_number" (refundReceiptNumber obj) GHC.Base.<> ((Data.Aeson..=) "source_transfer_reversal" (refundSourceTransferReversal obj) GHC.Base.<> ((Data.Aeson..=) "status" (refundStatus obj) GHC.Base.<> (Data.Aeson..=) "transfer_reversal" (refundTransferReversal obj)))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Refund
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Refund" (\obj -> ((((((((((((((((GHC.Base.pure Refund GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "failure_balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "failure_reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receipt_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_transfer_reversal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transfer_reversal"))
-- | Define the one-of schema refundBalance_transaction\'
-- 
-- Balance transaction that describes the impact on your account balance.
data RefundBalanceTransaction'Variants
    = RefundBalanceTransaction'BalanceTransaction BalanceTransaction
    | RefundBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RefundBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RefundBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema refundCharge\'
-- 
-- ID of the charge that was refunded.
data RefundCharge'Variants
    = RefundCharge'Charge Charge | RefundCharge'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RefundCharge'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RefundCharge'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema refundFailure_balance_transaction\'
-- 
-- If the refund failed, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction.
data RefundFailureBalanceTransaction'Variants
    = RefundFailureBalanceTransaction'BalanceTransaction BalanceTransaction
    | RefundFailureBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RefundFailureBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RefundFailureBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema refundMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data RefundMetadata' = RefundMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON RefundMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON RefundMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "RefundMetadata'" (\obj -> GHC.Base.pure RefundMetadata')
-- | Defines the enum schema refundObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data RefundObject'
    = RefundObject'EnumOther Data.Aeson.Types.Internal.Value
    | RefundObject'EnumTyped GHC.Base.String
    | RefundObject'EnumStringRefund
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON RefundObject'
    where toJSON (RefundObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (RefundObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (RefundObject'EnumStringRefund) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refund"
instance Data.Aeson.FromJSON RefundObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refund")
                                          then RefundObject'EnumStringRefund
                                          else RefundObject'EnumOther val)
-- | Define the one-of schema refundPayment_intent\'
-- 
-- ID of the PaymentIntent that was refunded.
data RefundPaymentIntent'Variants
    = RefundPaymentIntent'PaymentIntent PaymentIntent
    | RefundPaymentIntent'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RefundPaymentIntent'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RefundPaymentIntent'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema refundSource_transfer_reversal\'
-- 
-- The transfer reversal that is associated with the refund. Only present if the charge came from another Stripe account. See the Connect documentation for details.
data RefundSourceTransferReversal'Variants
    = RefundSourceTransferReversal'TransferReversal TransferReversal
    | RefundSourceTransferReversal'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RefundSourceTransferReversal'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RefundSourceTransferReversal'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema refundTransfer_reversal\'
-- 
-- If the accompanying transfer was reversed, the transfer reversal object. Only applicable if the charge was created using the destination parameter.
data RefundTransferReversal'Variants
    = RefundTransferReversal'TransferReversal TransferReversal
    | RefundTransferReversal'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON RefundTransferReversal'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON RefundTransferReversal'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema reporting.report_run
-- 
-- The Report Run object represents an instance of a report type generated with
-- specific run parameters. Once the object is created, Stripe begins processing the report.
-- When the report has finished running, it will give you a reference to a file
-- where you can retrieve your results. For an overview, see
-- [API Access to Reports](https:\/\/stripe.com\/docs\/reporting\/statements\/api).
-- 
-- Note that reports can only be run based on your live-mode data (not test-mode
-- data), and thus related requests must be made with a
-- [live-mode API key](https:\/\/stripe.com\/docs\/keys\#test-live-modes).
data Reporting'reportRun = Reporting'reportRun {
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  reporting'reportRunCreated :: GHC.Integer.Type.Integer
  -- | error: If something should go wrong during the run, a message about the failure (populated when
  --  \`status=failed\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunError :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunId :: GHC.Base.String
  -- | livemode: Always \`true\`: reports can only be run on live-mode data.
  , reporting'reportRunLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , reporting'reportRunObject :: Reporting'reportRunObject'
  -- | parameters: 
  , reporting'reportRunParameters :: FinancialReportingFinanceReportRunRunParameters
  -- | report_type: The ID of the [report type](https:\/\/stripe.com\/docs\/reporting\/statements\/api\#report-types) to run, such as \`\"balance.summary.1\"\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunReportType :: GHC.Base.String
  -- | result: The file object representing the result of the report run (populated when
  --  \`status=succeeded\`).
  , reporting'reportRunResult :: (GHC.Maybe.Maybe Reporting'reportRunResult')
  -- | status: Status of this report run. This will be \`pending\` when the run is initially created.
  --  When the run finishes, this will be set to \`succeeded\` and the \`result\` field will be populated.
  --  Rarely, we may encounter an error, at which point this will be set to \`failed\` and the \`error\` field will be populated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunStatus :: GHC.Base.String
  -- | succeeded_at: Timestamp at which this run successfully finished (populated when
  --  \`status=succeeded\`). Measured in seconds since the Unix epoch.
  , reporting'reportRunSucceededAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Reporting'reportRun
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "created" (reporting'reportRunCreated obj) : (Data.Aeson..=) "error" (reporting'reportRunError obj) : (Data.Aeson..=) "id" (reporting'reportRunId obj) : (Data.Aeson..=) "livemode" (reporting'reportRunLivemode obj) : (Data.Aeson..=) "object" (reporting'reportRunObject obj) : (Data.Aeson..=) "parameters" (reporting'reportRunParameters obj) : (Data.Aeson..=) "report_type" (reporting'reportRunReportType obj) : (Data.Aeson..=) "result" (reporting'reportRunResult obj) : (Data.Aeson..=) "status" (reporting'reportRunStatus obj) : (Data.Aeson..=) "succeeded_at" (reporting'reportRunSucceededAt obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "created" (reporting'reportRunCreated obj) GHC.Base.<> ((Data.Aeson..=) "error" (reporting'reportRunError obj) GHC.Base.<> ((Data.Aeson..=) "id" (reporting'reportRunId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (reporting'reportRunLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (reporting'reportRunObject obj) GHC.Base.<> ((Data.Aeson..=) "parameters" (reporting'reportRunParameters obj) GHC.Base.<> ((Data.Aeson..=) "report_type" (reporting'reportRunReportType obj) GHC.Base.<> ((Data.Aeson..=) "result" (reporting'reportRunResult obj) GHC.Base.<> ((Data.Aeson..=) "status" (reporting'reportRunStatus obj) GHC.Base.<> (Data.Aeson..=) "succeeded_at" (reporting'reportRunSucceededAt obj))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Reporting'reportRun
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Reporting'reportRun" (\obj -> (((((((((GHC.Base.pure Reporting'reportRun GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "error")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "parameters")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "report_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "result")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "succeeded_at"))
-- | Defines the enum schema reporting.report_runObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Reporting'reportRunObject'
    = Reporting'reportRunObject'EnumOther Data.Aeson.Types.Internal.Value
    | Reporting'reportRunObject'EnumTyped GHC.Base.String
    | Reporting'reportRunObject'EnumStringReporting'reportRun
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Reporting'reportRunObject'
    where toJSON (Reporting'reportRunObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Reporting'reportRunObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Reporting'reportRunObject'EnumStringReporting'reportRun) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reporting.report_run"
instance Data.Aeson.FromJSON Reporting'reportRunObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reporting.report_run")
                                          then Reporting'reportRunObject'EnumStringReporting'reportRun
                                          else Reporting'reportRunObject'EnumOther val)
-- | Defines the data type for the schema reporting.report_runResult\'
-- 
-- The file object representing the result of the report run (populated when
--  \\\`status=succeeded\\\`).
data Reporting'reportRunResult' = Reporting'reportRunResult' {
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  reporting'reportRunResult'Created :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | filename: A filename for the file, suitable for saving to a filesystem.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunResult'Filename :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunResult'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | links: A list of [file links](https:\/\/stripe.com\/docs\/api\#file_links) that point at this file.
  , reporting'reportRunResult'Links :: (GHC.Maybe.Maybe Reporting'reportRunResult'Links')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , reporting'reportRunResult'Object :: (GHC.Maybe.Maybe Reporting'reportRunResult'Object')
  -- | purpose: The purpose of the file. Possible values are \`additional_verification\`, \`business_icon\`, \`business_logo\`, \`customer_signature\`, \`dispute_evidence\`, \`finance_report_run\`, \`identity_document\`, \`pci_document\`, \`sigma_scheduled_query\`, or \`tax_document_user_upload\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunResult'Purpose :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | size: The size in bytes of the file object.
  , reporting'reportRunResult'Size :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | title: A user friendly title for the document.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunResult'Title :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | type: The type of the file returned (e.g., \`csv\`, \`pdf\`, \`jpg\`, or \`png\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunResult'Type :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | url: The URL from which the file can be downloaded using your live secret API key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunResult'Url :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Reporting'reportRunResult'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "created" (reporting'reportRunResult'Created obj) : (Data.Aeson..=) "filename" (reporting'reportRunResult'Filename obj) : (Data.Aeson..=) "id" (reporting'reportRunResult'Id obj) : (Data.Aeson..=) "links" (reporting'reportRunResult'Links obj) : (Data.Aeson..=) "object" (reporting'reportRunResult'Object obj) : (Data.Aeson..=) "purpose" (reporting'reportRunResult'Purpose obj) : (Data.Aeson..=) "size" (reporting'reportRunResult'Size obj) : (Data.Aeson..=) "title" (reporting'reportRunResult'Title obj) : (Data.Aeson..=) "type" (reporting'reportRunResult'Type obj) : (Data.Aeson..=) "url" (reporting'reportRunResult'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "created" (reporting'reportRunResult'Created obj) GHC.Base.<> ((Data.Aeson..=) "filename" (reporting'reportRunResult'Filename obj) GHC.Base.<> ((Data.Aeson..=) "id" (reporting'reportRunResult'Id obj) GHC.Base.<> ((Data.Aeson..=) "links" (reporting'reportRunResult'Links obj) GHC.Base.<> ((Data.Aeson..=) "object" (reporting'reportRunResult'Object obj) GHC.Base.<> ((Data.Aeson..=) "purpose" (reporting'reportRunResult'Purpose obj) GHC.Base.<> ((Data.Aeson..=) "size" (reporting'reportRunResult'Size obj) GHC.Base.<> ((Data.Aeson..=) "title" (reporting'reportRunResult'Title obj) GHC.Base.<> ((Data.Aeson..=) "type" (reporting'reportRunResult'Type obj) GHC.Base.<> (Data.Aeson..=) "url" (reporting'reportRunResult'Url obj))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Reporting'reportRunResult'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Reporting'reportRunResult'" (\obj -> (((((((((GHC.Base.pure Reporting'reportRunResult' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "filename")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "links")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "purpose")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "size")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "title")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "url"))
-- | Defines the data type for the schema reporting.report_runResult\'Links\'
-- 
-- A list of [file links](https:\/\/stripe.com\/docs\/api\#file_links) that point at this file.
data Reporting'reportRunResult'Links' = Reporting'reportRunResult'Links' {
  -- | data: Details about each object.
  reporting'reportRunResult'Links'Data :: ([] FileLink)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , reporting'reportRunResult'Links'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , reporting'reportRunResult'Links'Object :: Reporting'reportRunResult'Links'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reporting'reportRunResult'Links'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Reporting'reportRunResult'Links'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (reporting'reportRunResult'Links'Data obj) : (Data.Aeson..=) "has_more" (reporting'reportRunResult'Links'HasMore obj) : (Data.Aeson..=) "object" (reporting'reportRunResult'Links'Object obj) : (Data.Aeson..=) "url" (reporting'reportRunResult'Links'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (reporting'reportRunResult'Links'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (reporting'reportRunResult'Links'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (reporting'reportRunResult'Links'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (reporting'reportRunResult'Links'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON Reporting'reportRunResult'Links'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Reporting'reportRunResult'Links'" (\obj -> (((GHC.Base.pure Reporting'reportRunResult'Links' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema reporting.report_runResult\'Links\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data Reporting'reportRunResult'Links'Object'
    = Reporting'reportRunResult'Links'Object'EnumOther Data.Aeson.Types.Internal.Value
    | Reporting'reportRunResult'Links'Object'EnumTyped GHC.Base.String
    | Reporting'reportRunResult'Links'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Reporting'reportRunResult'Links'Object'
    where toJSON (Reporting'reportRunResult'Links'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Reporting'reportRunResult'Links'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Reporting'reportRunResult'Links'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON Reporting'reportRunResult'Links'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then Reporting'reportRunResult'Links'Object'EnumStringList
                                          else Reporting'reportRunResult'Links'Object'EnumOther val)
-- | Defines the enum schema reporting.report_runResult\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data Reporting'reportRunResult'Object'
    = Reporting'reportRunResult'Object'EnumOther Data.Aeson.Types.Internal.Value
    | Reporting'reportRunResult'Object'EnumTyped GHC.Base.String
    | Reporting'reportRunResult'Object'EnumStringFile
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON Reporting'reportRunResult'Object'
    where toJSON (Reporting'reportRunResult'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Reporting'reportRunResult'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (Reporting'reportRunResult'Object'EnumStringFile) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "file"
instance Data.Aeson.FromJSON Reporting'reportRunResult'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "file")
                                          then Reporting'reportRunResult'Object'EnumStringFile
                                          else Reporting'reportRunResult'Object'EnumOther val)
-- | Defines the data type for the schema review
-- 
-- Reviews can be used to supplement automated fraud detection with human expertise.
-- 
-- Learn more about [Radar](\/radar) and reviewing payments
-- [here](https:\/\/stripe.com\/docs\/radar\/reviews).
data Review = Review {
  -- | billing_zip: The ZIP or postal code of the card used, if applicable.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  reviewBillingZip :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | charge: The charge associated with this review.
  , reviewCharge :: (GHC.Maybe.Maybe ReviewCharge'Variants)
  -- | closed_reason: The reason the review was closed, or null if it has not yet been closed. One of \`approved\`, \`refunded\`, \`refunded_as_fraud\`, or \`disputed\`.
  , reviewClosedReason :: (GHC.Maybe.Maybe ReviewClosedReason')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , reviewCreated :: GHC.Integer.Type.Integer
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reviewId :: GHC.Base.String
  -- | ip_address: The IP address where the payment originated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reviewIpAddress :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ip_address_location: Information related to the location of the payment. Note that this information is an approximation and attempts to locate the nearest population center - it should not be used to determine a specific address.
  , reviewIpAddressLocation :: (GHC.Maybe.Maybe ReviewIpAddressLocation')
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , reviewLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , reviewObject :: ReviewObject'
  -- | open: If \`true\`, the review needs action.
  , reviewOpen :: GHC.Types.Bool
  -- | opened_reason: The reason the review was opened. One of \`rule\` or \`manual\`.
  , reviewOpenedReason :: ReviewOpenedReason'
  -- | payment_intent: The PaymentIntent ID associated with this review, if one exists.
  , reviewPaymentIntent :: (GHC.Maybe.Maybe ReviewPaymentIntent'Variants)
  -- | reason: The reason the review is currently open or closed. One of \`rule\`, \`manual\`, \`approved\`, \`refunded\`, \`refunded_as_fraud\`, or \`disputed\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reviewReason :: GHC.Base.String
  -- | session: Information related to the browsing session of the user who initiated the payment.
  , reviewSession :: (GHC.Maybe.Maybe ReviewSession')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Review
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_zip" (reviewBillingZip obj) : (Data.Aeson..=) "charge" (reviewCharge obj) : (Data.Aeson..=) "closed_reason" (reviewClosedReason obj) : (Data.Aeson..=) "created" (reviewCreated obj) : (Data.Aeson..=) "id" (reviewId obj) : (Data.Aeson..=) "ip_address" (reviewIpAddress obj) : (Data.Aeson..=) "ip_address_location" (reviewIpAddressLocation obj) : (Data.Aeson..=) "livemode" (reviewLivemode obj) : (Data.Aeson..=) "object" (reviewObject obj) : (Data.Aeson..=) "open" (reviewOpen obj) : (Data.Aeson..=) "opened_reason" (reviewOpenedReason obj) : (Data.Aeson..=) "payment_intent" (reviewPaymentIntent obj) : (Data.Aeson..=) "reason" (reviewReason obj) : (Data.Aeson..=) "session" (reviewSession obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_zip" (reviewBillingZip obj) GHC.Base.<> ((Data.Aeson..=) "charge" (reviewCharge obj) GHC.Base.<> ((Data.Aeson..=) "closed_reason" (reviewClosedReason obj) GHC.Base.<> ((Data.Aeson..=) "created" (reviewCreated obj) GHC.Base.<> ((Data.Aeson..=) "id" (reviewId obj) GHC.Base.<> ((Data.Aeson..=) "ip_address" (reviewIpAddress obj) GHC.Base.<> ((Data.Aeson..=) "ip_address_location" (reviewIpAddressLocation obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (reviewLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (reviewObject obj) GHC.Base.<> ((Data.Aeson..=) "open" (reviewOpen obj) GHC.Base.<> ((Data.Aeson..=) "opened_reason" (reviewOpenedReason obj) GHC.Base.<> ((Data.Aeson..=) "payment_intent" (reviewPaymentIntent obj) GHC.Base.<> ((Data.Aeson..=) "reason" (reviewReason obj) GHC.Base.<> (Data.Aeson..=) "session" (reviewSession obj))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Review
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Review" (\obj -> (((((((((((((GHC.Base.pure Review GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "closed_reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ip_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ip_address_location")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "open")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "opened_reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "session"))
-- | Define the one-of schema reviewCharge\'
-- 
-- The charge associated with this review.
data ReviewCharge'Variants
    = ReviewCharge'Charge Charge | ReviewCharge'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ReviewCharge'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ReviewCharge'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema reviewClosed_reason\'
-- 
-- The reason the review was closed, or null if it has not yet been closed. One of \`approved\`, \`refunded\`, \`refunded_as_fraud\`, or \`disputed\`.
data ReviewClosedReason'
    = ReviewClosedReason'EnumOther Data.Aeson.Types.Internal.Value
    | ReviewClosedReason'EnumTyped GHC.Base.String
    | ReviewClosedReason'EnumStringApproved
    | ReviewClosedReason'EnumStringDisputed
    | ReviewClosedReason'EnumStringRefunded
    | ReviewClosedReason'EnumStringRefundedAsFraud
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ReviewClosedReason'
    where toJSON (ReviewClosedReason'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ReviewClosedReason'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ReviewClosedReason'EnumStringApproved) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "approved"
          toJSON (ReviewClosedReason'EnumStringDisputed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "disputed"
          toJSON (ReviewClosedReason'EnumStringRefunded) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refunded"
          toJSON (ReviewClosedReason'EnumStringRefundedAsFraud) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refunded_as_fraud"
instance Data.Aeson.FromJSON ReviewClosedReason'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "approved")
                                          then ReviewClosedReason'EnumStringApproved
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "disputed")
                                                then ReviewClosedReason'EnumStringDisputed
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refunded")
                                                      then ReviewClosedReason'EnumStringRefunded
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "refunded_as_fraud")
                                                            then ReviewClosedReason'EnumStringRefundedAsFraud
                                                            else ReviewClosedReason'EnumOther val)
-- | Defines the data type for the schema reviewIp_address_location\'
-- 
-- Information related to the location of the payment. Note that this information is an approximation and attempts to locate the nearest population center - it should not be used to determine a specific address.
data ReviewIpAddressLocation' = ReviewIpAddressLocation' {
  -- | city: The city where the payment originated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  reviewIpAddressLocation'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter ISO code representing the country where the payment originated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reviewIpAddressLocation'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | latitude: The geographic latitude where the payment originated.
  , reviewIpAddressLocation'Latitude :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | longitude: The geographic longitude where the payment originated.
  , reviewIpAddressLocation'Longitude :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | region: The state\/county\/province\/region where the payment originated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reviewIpAddressLocation'Region :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ReviewIpAddressLocation'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (reviewIpAddressLocation'City obj) : (Data.Aeson..=) "country" (reviewIpAddressLocation'Country obj) : (Data.Aeson..=) "latitude" (reviewIpAddressLocation'Latitude obj) : (Data.Aeson..=) "longitude" (reviewIpAddressLocation'Longitude obj) : (Data.Aeson..=) "region" (reviewIpAddressLocation'Region obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (reviewIpAddressLocation'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (reviewIpAddressLocation'Country obj) GHC.Base.<> ((Data.Aeson..=) "latitude" (reviewIpAddressLocation'Latitude obj) GHC.Base.<> ((Data.Aeson..=) "longitude" (reviewIpAddressLocation'Longitude obj) GHC.Base.<> (Data.Aeson..=) "region" (reviewIpAddressLocation'Region obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON ReviewIpAddressLocation'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ReviewIpAddressLocation'" (\obj -> ((((GHC.Base.pure ReviewIpAddressLocation' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "latitude")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "longitude")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "region"))
-- | Defines the enum schema reviewObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data ReviewObject'
    = ReviewObject'EnumOther Data.Aeson.Types.Internal.Value
    | ReviewObject'EnumTyped GHC.Base.String
    | ReviewObject'EnumStringReview
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ReviewObject'
    where toJSON (ReviewObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ReviewObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ReviewObject'EnumStringReview) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "review"
instance Data.Aeson.FromJSON ReviewObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "review")
                                          then ReviewObject'EnumStringReview
                                          else ReviewObject'EnumOther val)
-- | Defines the enum schema reviewOpened_reason\'
-- 
-- The reason the review was opened. One of \`rule\` or \`manual\`.
data ReviewOpenedReason'
    = ReviewOpenedReason'EnumOther Data.Aeson.Types.Internal.Value
    | ReviewOpenedReason'EnumTyped GHC.Base.String
    | ReviewOpenedReason'EnumStringManual
    | ReviewOpenedReason'EnumStringRule
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ReviewOpenedReason'
    where toJSON (ReviewOpenedReason'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ReviewOpenedReason'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ReviewOpenedReason'EnumStringManual) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual"
          toJSON (ReviewOpenedReason'EnumStringRule) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "rule"
instance Data.Aeson.FromJSON ReviewOpenedReason'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "manual")
                                          then ReviewOpenedReason'EnumStringManual
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "rule")
                                                then ReviewOpenedReason'EnumStringRule
                                                else ReviewOpenedReason'EnumOther val)
-- | Define the one-of schema reviewPayment_intent\'
-- 
-- The PaymentIntent ID associated with this review, if one exists.
data ReviewPaymentIntent'Variants
    = ReviewPaymentIntent'PaymentIntent PaymentIntent
    | ReviewPaymentIntent'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON ReviewPaymentIntent'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON ReviewPaymentIntent'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema reviewSession\'
-- 
-- Information related to the browsing session of the user who initiated the payment.
data ReviewSession' = ReviewSession' {
  -- | browser: The browser used in this browser session (e.g., \`Chrome\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  reviewSession'Browser :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | device: Information about the device used for the browser session (e.g., \`Samsung SM-G930T\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reviewSession'Device :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | platform: The platform for the browser session (e.g., \`Macintosh\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reviewSession'Platform :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | version: The version for the browser session (e.g., \`61.0.3163.100\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , reviewSession'Version :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ReviewSession'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "browser" (reviewSession'Browser obj) : (Data.Aeson..=) "device" (reviewSession'Device obj) : (Data.Aeson..=) "platform" (reviewSession'Platform obj) : (Data.Aeson..=) "version" (reviewSession'Version obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "browser" (reviewSession'Browser obj) GHC.Base.<> ((Data.Aeson..=) "device" (reviewSession'Device obj) GHC.Base.<> ((Data.Aeson..=) "platform" (reviewSession'Platform obj) GHC.Base.<> (Data.Aeson..=) "version" (reviewSession'Version obj))))
instance Data.Aeson.Types.FromJSON.FromJSON ReviewSession'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ReviewSession'" (\obj -> (((GHC.Base.pure ReviewSession' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "browser")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "device")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "platform")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "version"))
-- | Defines the data type for the schema scheduled_query_run
-- 
-- If you have [scheduled a Sigma query](https:\/\/stripe.com\/docs\/sigma\/scheduled-queries), you\'ll
-- receive a \`sigma.scheduled_query_run.created\` webhook each time the query
-- runs. The webhook contains a \`ScheduledQueryRun\` object, which you can use to
-- retrieve the query results.
data ScheduledQueryRun = ScheduledQueryRun {
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  scheduledQueryRunCreated :: GHC.Integer.Type.Integer
  -- | data_load_time: When the query was run, Sigma contained a snapshot of your Stripe data at this time.
  , scheduledQueryRunDataLoadTime :: GHC.Integer.Type.Integer
  -- | error: 
  , scheduledQueryRunError :: (GHC.Maybe.Maybe SigmaScheduledQueryRunError)
  -- | file: The file object representing the results of the query.
  , scheduledQueryRunFile :: (GHC.Maybe.Maybe ScheduledQueryRunFile')
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , scheduledQueryRunId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , scheduledQueryRunLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , scheduledQueryRunObject :: ScheduledQueryRunObject'
  -- | result_available_until: Time at which the result expires and is no longer available for download.
  , scheduledQueryRunResultAvailableUntil :: GHC.Integer.Type.Integer
  -- | sql: SQL for the query.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 100000
  , scheduledQueryRunSql :: GHC.Base.String
  -- | status: The query\'s execution status, which will be \`completed\` for successful runs, and \`canceled\`, \`failed\`, or \`timed_out\` otherwise.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , scheduledQueryRunStatus :: GHC.Base.String
  -- | title: Title of the query.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , scheduledQueryRunTitle :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ScheduledQueryRun
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "created" (scheduledQueryRunCreated obj) : (Data.Aeson..=) "data_load_time" (scheduledQueryRunDataLoadTime obj) : (Data.Aeson..=) "error" (scheduledQueryRunError obj) : (Data.Aeson..=) "file" (scheduledQueryRunFile obj) : (Data.Aeson..=) "id" (scheduledQueryRunId obj) : (Data.Aeson..=) "livemode" (scheduledQueryRunLivemode obj) : (Data.Aeson..=) "object" (scheduledQueryRunObject obj) : (Data.Aeson..=) "result_available_until" (scheduledQueryRunResultAvailableUntil obj) : (Data.Aeson..=) "sql" (scheduledQueryRunSql obj) : (Data.Aeson..=) "status" (scheduledQueryRunStatus obj) : (Data.Aeson..=) "title" (scheduledQueryRunTitle obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "created" (scheduledQueryRunCreated obj) GHC.Base.<> ((Data.Aeson..=) "data_load_time" (scheduledQueryRunDataLoadTime obj) GHC.Base.<> ((Data.Aeson..=) "error" (scheduledQueryRunError obj) GHC.Base.<> ((Data.Aeson..=) "file" (scheduledQueryRunFile obj) GHC.Base.<> ((Data.Aeson..=) "id" (scheduledQueryRunId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (scheduledQueryRunLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (scheduledQueryRunObject obj) GHC.Base.<> ((Data.Aeson..=) "result_available_until" (scheduledQueryRunResultAvailableUntil obj) GHC.Base.<> ((Data.Aeson..=) "sql" (scheduledQueryRunSql obj) GHC.Base.<> ((Data.Aeson..=) "status" (scheduledQueryRunStatus obj) GHC.Base.<> (Data.Aeson..=) "title" (scheduledQueryRunTitle obj)))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON ScheduledQueryRun
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ScheduledQueryRun" (\obj -> ((((((((((GHC.Base.pure ScheduledQueryRun GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data_load_time")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "error")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "file")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "result_available_until")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "sql")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "title"))
-- | Defines the data type for the schema scheduled_query_runFile\'
-- 
-- The file object representing the results of the query.
data ScheduledQueryRunFile' = ScheduledQueryRunFile' {
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  scheduledQueryRunFile'Created :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | filename: A filename for the file, suitable for saving to a filesystem.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , scheduledQueryRunFile'Filename :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , scheduledQueryRunFile'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | links: A list of [file links](https:\/\/stripe.com\/docs\/api\#file_links) that point at this file.
  , scheduledQueryRunFile'Links :: (GHC.Maybe.Maybe ScheduledQueryRunFile'Links')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , scheduledQueryRunFile'Object :: (GHC.Maybe.Maybe ScheduledQueryRunFile'Object')
  -- | purpose: The purpose of the file. Possible values are \`additional_verification\`, \`business_icon\`, \`business_logo\`, \`customer_signature\`, \`dispute_evidence\`, \`finance_report_run\`, \`identity_document\`, \`pci_document\`, \`sigma_scheduled_query\`, or \`tax_document_user_upload\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , scheduledQueryRunFile'Purpose :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | size: The size in bytes of the file object.
  , scheduledQueryRunFile'Size :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | title: A user friendly title for the document.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , scheduledQueryRunFile'Title :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | type: The type of the file returned (e.g., \`csv\`, \`pdf\`, \`jpg\`, or \`png\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , scheduledQueryRunFile'Type :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | url: The URL from which the file can be downloaded using your live secret API key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , scheduledQueryRunFile'Url :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ScheduledQueryRunFile'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "created" (scheduledQueryRunFile'Created obj) : (Data.Aeson..=) "filename" (scheduledQueryRunFile'Filename obj) : (Data.Aeson..=) "id" (scheduledQueryRunFile'Id obj) : (Data.Aeson..=) "links" (scheduledQueryRunFile'Links obj) : (Data.Aeson..=) "object" (scheduledQueryRunFile'Object obj) : (Data.Aeson..=) "purpose" (scheduledQueryRunFile'Purpose obj) : (Data.Aeson..=) "size" (scheduledQueryRunFile'Size obj) : (Data.Aeson..=) "title" (scheduledQueryRunFile'Title obj) : (Data.Aeson..=) "type" (scheduledQueryRunFile'Type obj) : (Data.Aeson..=) "url" (scheduledQueryRunFile'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "created" (scheduledQueryRunFile'Created obj) GHC.Base.<> ((Data.Aeson..=) "filename" (scheduledQueryRunFile'Filename obj) GHC.Base.<> ((Data.Aeson..=) "id" (scheduledQueryRunFile'Id obj) GHC.Base.<> ((Data.Aeson..=) "links" (scheduledQueryRunFile'Links obj) GHC.Base.<> ((Data.Aeson..=) "object" (scheduledQueryRunFile'Object obj) GHC.Base.<> ((Data.Aeson..=) "purpose" (scheduledQueryRunFile'Purpose obj) GHC.Base.<> ((Data.Aeson..=) "size" (scheduledQueryRunFile'Size obj) GHC.Base.<> ((Data.Aeson..=) "title" (scheduledQueryRunFile'Title obj) GHC.Base.<> ((Data.Aeson..=) "type" (scheduledQueryRunFile'Type obj) GHC.Base.<> (Data.Aeson..=) "url" (scheduledQueryRunFile'Url obj))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON ScheduledQueryRunFile'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ScheduledQueryRunFile'" (\obj -> (((((((((GHC.Base.pure ScheduledQueryRunFile' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "filename")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "links")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "purpose")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "size")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "title")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "url"))
-- | Defines the data type for the schema scheduled_query_runFile\'Links\'
-- 
-- A list of [file links](https:\/\/stripe.com\/docs\/api\#file_links) that point at this file.
data ScheduledQueryRunFile'Links' = ScheduledQueryRunFile'Links' {
  -- | data: Details about each object.
  scheduledQueryRunFile'Links'Data :: ([] FileLink)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , scheduledQueryRunFile'Links'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , scheduledQueryRunFile'Links'Object :: ScheduledQueryRunFile'Links'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , scheduledQueryRunFile'Links'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ScheduledQueryRunFile'Links'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (scheduledQueryRunFile'Links'Data obj) : (Data.Aeson..=) "has_more" (scheduledQueryRunFile'Links'HasMore obj) : (Data.Aeson..=) "object" (scheduledQueryRunFile'Links'Object obj) : (Data.Aeson..=) "url" (scheduledQueryRunFile'Links'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (scheduledQueryRunFile'Links'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (scheduledQueryRunFile'Links'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (scheduledQueryRunFile'Links'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (scheduledQueryRunFile'Links'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON ScheduledQueryRunFile'Links'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ScheduledQueryRunFile'Links'" (\obj -> (((GHC.Base.pure ScheduledQueryRunFile'Links' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema scheduled_query_runFile\'Links\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data ScheduledQueryRunFile'Links'Object'
    = ScheduledQueryRunFile'Links'Object'EnumOther Data.Aeson.Types.Internal.Value
    | ScheduledQueryRunFile'Links'Object'EnumTyped GHC.Base.String
    | ScheduledQueryRunFile'Links'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ScheduledQueryRunFile'Links'Object'
    where toJSON (ScheduledQueryRunFile'Links'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ScheduledQueryRunFile'Links'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ScheduledQueryRunFile'Links'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON ScheduledQueryRunFile'Links'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then ScheduledQueryRunFile'Links'Object'EnumStringList
                                          else ScheduledQueryRunFile'Links'Object'EnumOther val)
-- | Defines the enum schema scheduled_query_runFile\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data ScheduledQueryRunFile'Object'
    = ScheduledQueryRunFile'Object'EnumOther Data.Aeson.Types.Internal.Value
    | ScheduledQueryRunFile'Object'EnumTyped GHC.Base.String
    | ScheduledQueryRunFile'Object'EnumStringFile
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ScheduledQueryRunFile'Object'
    where toJSON (ScheduledQueryRunFile'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ScheduledQueryRunFile'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ScheduledQueryRunFile'Object'EnumStringFile) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "file"
instance Data.Aeson.FromJSON ScheduledQueryRunFile'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "file")
                                          then ScheduledQueryRunFile'Object'EnumStringFile
                                          else ScheduledQueryRunFile'Object'EnumOther val)
-- | Defines the enum schema scheduled_query_runObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data ScheduledQueryRunObject'
    = ScheduledQueryRunObject'EnumOther Data.Aeson.Types.Internal.Value
    | ScheduledQueryRunObject'EnumTyped GHC.Base.String
    | ScheduledQueryRunObject'EnumStringScheduledQueryRun
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ScheduledQueryRunObject'
    where toJSON (ScheduledQueryRunObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ScheduledQueryRunObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ScheduledQueryRunObject'EnumStringScheduledQueryRun) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "scheduled_query_run"
instance Data.Aeson.FromJSON ScheduledQueryRunObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "scheduled_query_run")
                                          then ScheduledQueryRunObject'EnumStringScheduledQueryRun
                                          else ScheduledQueryRunObject'EnumOther val)
-- | Defines the data type for the schema setup_intent
-- 
-- A SetupIntent guides you through the process of setting up a customer\'s payment credentials for future payments.
-- For example, you could use a SetupIntent to set up your customer\'s card without immediately collecting a payment.
-- Later, you can use [PaymentIntents](https:\/\/stripe.com\/docs\/api\#payment_intents) to drive the payment flow.
-- 
-- Create a SetupIntent as soon as you\'re ready to collect your customer\'s payment credentials.
-- Do not maintain long-lived, unconfirmed SetupIntents as they may no longer be valid.
-- The SetupIntent then transitions through multiple [statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses) as it guides
-- you through the setup process.
-- 
-- Successful SetupIntents result in payment credentials that are optimized for future payments.
-- For example, cardholders in [certain regions](\/guides\/strong-customer-authentication) may need to be run through
-- [Strong Customer Authentication](https:\/\/stripe.com\/docs\/strong-customer-authentication) at the time of payment method collection
-- in order to streamline later [off-session payments](https:\/\/stripe.com\/docs\/payments\/setup-intents).
-- 
-- By using SetupIntents, you ensure that your customers experience the minimum set of required friction,
-- even as regulations change over time.
data SetupIntent = SetupIntent {
  -- | application: ID of the Connect application that created the SetupIntent.
  setupIntentApplication :: (GHC.Maybe.Maybe SetupIntentApplication'Variants)
  -- | cancellation_reason: Reason for cancellation of this SetupIntent, one of \`abandoned\`, \`requested_by_customer\`, or \`duplicate\`.
  , setupIntentCancellationReason :: (GHC.Maybe.Maybe SetupIntentCancellationReason')
  -- | client_secret: The client secret of this SetupIntent. Used for client-side retrieval using a publishable key.
  -- 
  -- The client secret can be used to complete payment setup from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentClientSecret :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , setupIntentCreated :: GHC.Integer.Type.Integer
  -- | customer: ID of the Customer this SetupIntent belongs to, if one exists.
  -- 
  -- If present, payment methods used with this SetupIntent can only be attached to this Customer, and payment methods attached to other Customers cannot be used with this SetupIntent.
  , setupIntentCustomer :: (GHC.Maybe.Maybe SetupIntentCustomer'Variants)
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentId :: GHC.Base.String
  -- | last_setup_error: The error encountered in the previous SetupIntent confirmation.
  , setupIntentLastSetupError :: (GHC.Maybe.Maybe SetupIntentLastSetupError')
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , setupIntentLivemode :: GHC.Types.Bool
  -- | mandate: ID of the multi use Mandate generated by the SetupIntent.
  , setupIntentMandate :: (GHC.Maybe.Maybe SetupIntentMandate'Variants)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , setupIntentMetadata :: (GHC.Maybe.Maybe SetupIntentMetadata')
  -- | next_action: If present, this property tells you what actions you need to take in order for your customer to continue payment setup.
  , setupIntentNextAction :: (GHC.Maybe.Maybe SetupIntentNextAction')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , setupIntentObject :: SetupIntentObject'
  -- | on_behalf_of: The account (if any) for which the setup is intended.
  , setupIntentOnBehalfOf :: (GHC.Maybe.Maybe SetupIntentOnBehalfOf'Variants)
  -- | payment_method: ID of the payment method used with this SetupIntent.
  , setupIntentPaymentMethod :: (GHC.Maybe.Maybe SetupIntentPaymentMethod'Variants)
  -- | payment_method_options: Payment-method-specific configuration for this SetupIntent.
  , setupIntentPaymentMethodOptions :: (GHC.Maybe.Maybe SetupIntentPaymentMethodOptions')
  -- | payment_method_types: The list of payment method types (e.g. card) that this SetupIntent is allowed to set up.
  , setupIntentPaymentMethodTypes :: ([] GHC.Base.String)
  -- | single_use_mandate: ID of the single_use Mandate generated by the SetupIntent.
  , setupIntentSingleUseMandate :: (GHC.Maybe.Maybe SetupIntentSingleUseMandate'Variants)
  -- | status: [Status](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses) of this SetupIntent, one of \`requires_payment_method\`, \`requires_confirmation\`, \`requires_action\`, \`processing\`, \`canceled\`, or \`succeeded\`.
  , setupIntentStatus :: SetupIntentStatus'
  -- | usage: Indicates how the payment method is intended to be used in the future.
  -- 
  -- Use \`on_session\` if you intend to only reuse the payment method when the customer is in your checkout flow. Use \`off_session\` if your customer may or may not be in your checkout flow. If not provided, this value defaults to \`off_session\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentUsage :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntent
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "application" (setupIntentApplication obj) : (Data.Aeson..=) "cancellation_reason" (setupIntentCancellationReason obj) : (Data.Aeson..=) "client_secret" (setupIntentClientSecret obj) : (Data.Aeson..=) "created" (setupIntentCreated obj) : (Data.Aeson..=) "customer" (setupIntentCustomer obj) : (Data.Aeson..=) "description" (setupIntentDescription obj) : (Data.Aeson..=) "id" (setupIntentId obj) : (Data.Aeson..=) "last_setup_error" (setupIntentLastSetupError obj) : (Data.Aeson..=) "livemode" (setupIntentLivemode obj) : (Data.Aeson..=) "mandate" (setupIntentMandate obj) : (Data.Aeson..=) "metadata" (setupIntentMetadata obj) : (Data.Aeson..=) "next_action" (setupIntentNextAction obj) : (Data.Aeson..=) "object" (setupIntentObject obj) : (Data.Aeson..=) "on_behalf_of" (setupIntentOnBehalfOf obj) : (Data.Aeson..=) "payment_method" (setupIntentPaymentMethod obj) : (Data.Aeson..=) "payment_method_options" (setupIntentPaymentMethodOptions obj) : (Data.Aeson..=) "payment_method_types" (setupIntentPaymentMethodTypes obj) : (Data.Aeson..=) "single_use_mandate" (setupIntentSingleUseMandate obj) : (Data.Aeson..=) "status" (setupIntentStatus obj) : (Data.Aeson..=) "usage" (setupIntentUsage obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "application" (setupIntentApplication obj) GHC.Base.<> ((Data.Aeson..=) "cancellation_reason" (setupIntentCancellationReason obj) GHC.Base.<> ((Data.Aeson..=) "client_secret" (setupIntentClientSecret obj) GHC.Base.<> ((Data.Aeson..=) "created" (setupIntentCreated obj) GHC.Base.<> ((Data.Aeson..=) "customer" (setupIntentCustomer obj) GHC.Base.<> ((Data.Aeson..=) "description" (setupIntentDescription obj) GHC.Base.<> ((Data.Aeson..=) "id" (setupIntentId obj) GHC.Base.<> ((Data.Aeson..=) "last_setup_error" (setupIntentLastSetupError obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (setupIntentLivemode obj) GHC.Base.<> ((Data.Aeson..=) "mandate" (setupIntentMandate obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (setupIntentMetadata obj) GHC.Base.<> ((Data.Aeson..=) "next_action" (setupIntentNextAction obj) GHC.Base.<> ((Data.Aeson..=) "object" (setupIntentObject obj) GHC.Base.<> ((Data.Aeson..=) "on_behalf_of" (setupIntentOnBehalfOf obj) GHC.Base.<> ((Data.Aeson..=) "payment_method" (setupIntentPaymentMethod obj) GHC.Base.<> ((Data.Aeson..=) "payment_method_options" (setupIntentPaymentMethodOptions obj) GHC.Base.<> ((Data.Aeson..=) "payment_method_types" (setupIntentPaymentMethodTypes obj) GHC.Base.<> ((Data.Aeson..=) "single_use_mandate" (setupIntentSingleUseMandate obj) GHC.Base.<> ((Data.Aeson..=) "status" (setupIntentStatus obj) GHC.Base.<> (Data.Aeson..=) "usage" (setupIntentUsage obj))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntent
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntent" (\obj -> (((((((((((((((((((GHC.Base.pure SetupIntent GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cancellation_reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_secret")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last_setup_error")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "mandate")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "next_action")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "on_behalf_of")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method_options")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "payment_method_types")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "single_use_mandate")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "usage"))
-- | Define the one-of schema setup_intentApplication\'
-- 
-- ID of the Connect application that created the SetupIntent.
data SetupIntentApplication'Variants
    = SetupIntentApplication'Application Application
    | SetupIntentApplication'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SetupIntentApplication'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SetupIntentApplication'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema setup_intentCancellation_reason\'
-- 
-- Reason for cancellation of this SetupIntent, one of \`abandoned\`, \`requested_by_customer\`, or \`duplicate\`.
data SetupIntentCancellationReason'
    = SetupIntentCancellationReason'EnumOther Data.Aeson.Types.Internal.Value
    | SetupIntentCancellationReason'EnumTyped GHC.Base.String
    | SetupIntentCancellationReason'EnumStringAbandoned
    | SetupIntentCancellationReason'EnumStringDuplicate
    | SetupIntentCancellationReason'EnumStringRequestedByCustomer
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentCancellationReason'
    where toJSON (SetupIntentCancellationReason'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentCancellationReason'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentCancellationReason'EnumStringAbandoned) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "abandoned"
          toJSON (SetupIntentCancellationReason'EnumStringDuplicate) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duplicate"
          toJSON (SetupIntentCancellationReason'EnumStringRequestedByCustomer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requested_by_customer"
instance Data.Aeson.FromJSON SetupIntentCancellationReason'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "abandoned")
                                          then SetupIntentCancellationReason'EnumStringAbandoned
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "duplicate")
                                                then SetupIntentCancellationReason'EnumStringDuplicate
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requested_by_customer")
                                                      then SetupIntentCancellationReason'EnumStringRequestedByCustomer
                                                      else SetupIntentCancellationReason'EnumOther val)
-- | Define the one-of schema setup_intentCustomer\'
-- 
-- ID of the Customer this SetupIntent belongs to, if one exists.
-- 
-- If present, payment methods used with this SetupIntent can only be attached to this Customer, and payment methods attached to other Customers cannot be used with this SetupIntent.
data SetupIntentCustomer'Variants
    = SetupIntentCustomer'Customer Customer
    | SetupIntentCustomer'DeletedCustomer DeletedCustomer
    | SetupIntentCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SetupIntentCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SetupIntentCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema setup_intentLast_setup_error\'
-- 
-- The error encountered in the previous SetupIntent confirmation.
data SetupIntentLastSetupError' = SetupIntentLastSetupError' {
  -- | charge: For card errors, the ID of the failed charge.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  setupIntentLastSetupError'Charge :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | code: For some errors that could be handled programmatically, a short string indicating the [error code](https:\/\/stripe.com\/docs\/error-codes) reported.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Code :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | decline_code: For card errors resulting from a card issuer decline, a short string indicating the [card issuer\'s reason for the decline](https:\/\/stripe.com\/docs\/declines\#issuer-declines) if they provide one.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'DeclineCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | doc_url: A URL to more information about the [error code](https:\/\/stripe.com\/docs\/error-codes) reported.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'DocUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | message: A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 40000
  , setupIntentLastSetupError'Message :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | param: If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Param :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | payment_intent: A PaymentIntent guides you through the process of collecting a payment from your customer.
  -- We recommend that you create exactly one PaymentIntent for each order or
  -- customer session in your system. You can reference the PaymentIntent later to
  -- see the history of payment attempts for a particular session.
  -- 
  -- A PaymentIntent transitions through
  -- [multiple statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses)
  -- throughout its lifetime as it interfaces with Stripe.js to perform
  -- authentication flows and ultimately creates at most one successful charge.
  -- 
  -- Related guide: [Payment Intents API](https:\/\/stripe.com\/docs\/payments\/payment-intents\/creating-payment-intents).
  , setupIntentLastSetupError'PaymentIntent :: (GHC.Maybe.Maybe PaymentIntent)
  -- | payment_method: PaymentMethod objects represent your customer\'s payment instruments.
  -- They can be used with [PaymentIntents](https:\/\/stripe.com\/docs\/payments\/payment-intents) to collect payments or saved to
  -- Customer objects to store instrument details for future payments.
  -- 
  -- Related guides: [Payment Methods](https:\/\/stripe.com\/docs\/payments\/payment-methods) and [More Payment Scenarios](https:\/\/stripe.com\/docs\/payments\/more-payment-scenarios).
  , setupIntentLastSetupError'PaymentMethod :: (GHC.Maybe.Maybe PaymentMethod)
  -- | setup_intent: A SetupIntent guides you through the process of setting up a customer\'s payment credentials for future payments.
  -- For example, you could use a SetupIntent to set up your customer\'s card without immediately collecting a payment.
  -- Later, you can use [PaymentIntents](https:\/\/stripe.com\/docs\/api\#payment_intents) to drive the payment flow.
  -- 
  -- Create a SetupIntent as soon as you\'re ready to collect your customer\'s payment credentials.
  -- Do not maintain long-lived, unconfirmed SetupIntents as they may no longer be valid.
  -- The SetupIntent then transitions through multiple [statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses) as it guides
  -- you through the setup process.
  -- 
  -- Successful SetupIntents result in payment credentials that are optimized for future payments.
  -- For example, cardholders in [certain regions](\/guides\/strong-customer-authentication) may need to be run through
  -- [Strong Customer Authentication](https:\/\/stripe.com\/docs\/strong-customer-authentication) at the time of payment method collection
  -- in order to streamline later [off-session payments](https:\/\/stripe.com\/docs\/payments\/setup-intents).
  -- 
  -- By using SetupIntents, you ensure that your customers experience the minimum set of required friction,
  -- even as regulations change over time.
  , setupIntentLastSetupError'SetupIntent :: (GHC.Maybe.Maybe SetupIntent)
  -- | source: The source object for errors returned on a request involving a source.
  , setupIntentLastSetupError'Source :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source')
  -- | type: The type of error returned. One of \`api_connection_error\`, \`api_error\`, \`authentication_error\`, \`card_error\`, \`idempotency_error\`, \`invalid_request_error\`, or \`rate_limit_error\`
  , setupIntentLastSetupError'Type :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Type')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "charge" (setupIntentLastSetupError'Charge obj) : (Data.Aeson..=) "code" (setupIntentLastSetupError'Code obj) : (Data.Aeson..=) "decline_code" (setupIntentLastSetupError'DeclineCode obj) : (Data.Aeson..=) "doc_url" (setupIntentLastSetupError'DocUrl obj) : (Data.Aeson..=) "message" (setupIntentLastSetupError'Message obj) : (Data.Aeson..=) "param" (setupIntentLastSetupError'Param obj) : (Data.Aeson..=) "payment_intent" (setupIntentLastSetupError'PaymentIntent obj) : (Data.Aeson..=) "payment_method" (setupIntentLastSetupError'PaymentMethod obj) : (Data.Aeson..=) "setup_intent" (setupIntentLastSetupError'SetupIntent obj) : (Data.Aeson..=) "source" (setupIntentLastSetupError'Source obj) : (Data.Aeson..=) "type" (setupIntentLastSetupError'Type obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "charge" (setupIntentLastSetupError'Charge obj) GHC.Base.<> ((Data.Aeson..=) "code" (setupIntentLastSetupError'Code obj) GHC.Base.<> ((Data.Aeson..=) "decline_code" (setupIntentLastSetupError'DeclineCode obj) GHC.Base.<> ((Data.Aeson..=) "doc_url" (setupIntentLastSetupError'DocUrl obj) GHC.Base.<> ((Data.Aeson..=) "message" (setupIntentLastSetupError'Message obj) GHC.Base.<> ((Data.Aeson..=) "param" (setupIntentLastSetupError'Param obj) GHC.Base.<> ((Data.Aeson..=) "payment_intent" (setupIntentLastSetupError'PaymentIntent obj) GHC.Base.<> ((Data.Aeson..=) "payment_method" (setupIntentLastSetupError'PaymentMethod obj) GHC.Base.<> ((Data.Aeson..=) "setup_intent" (setupIntentLastSetupError'SetupIntent obj) GHC.Base.<> ((Data.Aeson..=) "source" (setupIntentLastSetupError'Source obj) GHC.Base.<> (Data.Aeson..=) "type" (setupIntentLastSetupError'Type obj)))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentLastSetupError'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntentLastSetupError'" (\obj -> ((((((((((GHC.Base.pure SetupIntentLastSetupError' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "charge")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "decline_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "doc_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "message")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "param")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "setup_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the data type for the schema setup_intentLast_setup_error\'Source\'
-- 
-- The source object for errors returned on a request involving a source.
data SetupIntentLastSetupError'Source' = SetupIntentLastSetupError'Source' {
  -- | account: The ID of the account that the bank account is associated with.
  setupIntentLastSetupError'Source'Account :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Account'Variants)
  -- | account_holder_name: The name of the person or business that owns the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'AccountHolderName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'AccountHolderType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ach_credit_transfer
  , setupIntentLastSetupError'Source'AchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer)
  -- | ach_debit
  , setupIntentLastSetupError'Source'AchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit)
  -- | address_city: City\/District\/Suburb\/Town\/Village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'AddressCity :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_country: Billing address country, if provided when creating card.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'AddressCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'AddressLine1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'AddressLine1Check :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'AddressLine2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_state: State\/County\/Province\/Region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'AddressState :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'AddressZip :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'AddressZipCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | alipay
  , setupIntentLastSetupError'Source'Alipay :: (GHC.Maybe.Maybe SourceTypeAlipay)
  -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for \`single_use\` sources.
  , setupIntentLastSetupError'Source'Amount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | available_payout_methods: A set of available payout methods for this card. Will be either \`[\"standard\"]\` or \`[\"standard\", \"instant\"]\`. Only values from this set should be passed as the \`method\` when creating a transfer.
  , setupIntentLastSetupError'Source'AvailablePayoutMethods :: (GHC.Maybe.Maybe ([] SetupIntentLastSetupError'Source'AvailablePayoutMethods'))
  -- | bancontact
  , setupIntentLastSetupError'Source'Bancontact :: (GHC.Maybe.Maybe SourceTypeBancontact)
  -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'BankName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Brand :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | card
  , setupIntentLastSetupError'Source'Card :: (GHC.Maybe.Maybe SourceTypeCard)
  -- | card_present
  , setupIntentLastSetupError'Source'CardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent)
  -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'ClientSecret :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | code_verification: 
  , setupIntentLastSetupError'Source'CodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow)
  -- | country: Two-letter ISO code representing the country the bank account is located in.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , setupIntentLastSetupError'Source'Created :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
  , setupIntentLastSetupError'Source'Currency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The ID of the customer that the bank account is associated with.
  , setupIntentLastSetupError'Source'Customer :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Customer'Variants)
  -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'CvcCheck :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | default_for_currency: Whether this bank account is the default external account for its currency.
  , setupIntentLastSetupError'Source'DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'DynamicLast4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | eps
  , setupIntentLastSetupError'Source'Eps :: (GHC.Maybe.Maybe SourceTypeEps)
  -- | exp_month: Two-digit number representing the card\'s expiration month.
  , setupIntentLastSetupError'Source'ExpMonth :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | exp_year: Four-digit number representing the card\'s expiration year.
  , setupIntentLastSetupError'Source'ExpYear :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Fingerprint :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | flow: The authentication \`flow\` of the source. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Flow :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Funding :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | giropay
  , setupIntentLastSetupError'Source'Giropay :: (GHC.Maybe.Maybe SourceTypeGiropay)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | ideal
  , setupIntentLastSetupError'Source'Ideal :: (GHC.Maybe.Maybe SourceTypeIdeal)
  -- | klarna
  , setupIntentLastSetupError'Source'Klarna :: (GHC.Maybe.Maybe SourceTypeKlarna)
  -- | last4: The last four digits of the bank account number.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Last4 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , setupIntentLastSetupError'Source'Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , setupIntentLastSetupError'Source'Metadata :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Metadata')
  -- | multibanco
  , setupIntentLastSetupError'Source'Multibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco)
  -- | name: Cardholder name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , setupIntentLastSetupError'Source'Object :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Object')
  -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
  , setupIntentLastSetupError'Source'Owner :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Owner')
  -- | p24
  , setupIntentLastSetupError'Source'P24 :: (GHC.Maybe.Maybe SourceTypeP24)
  -- | receiver: 
  , setupIntentLastSetupError'Source'Receiver :: (GHC.Maybe.Maybe SourceReceiverFlow)
  -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
  , setupIntentLastSetupError'Source'Recipient :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Recipient'Variants)
  -- | redirect: 
  , setupIntentLastSetupError'Source'Redirect :: (GHC.Maybe.Maybe SourceRedirectFlow)
  -- | routing_number: The routing transit number for the bank account.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'RoutingNumber :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | sepa_debit
  , setupIntentLastSetupError'Source'SepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit)
  -- | sofort
  , setupIntentLastSetupError'Source'Sofort :: (GHC.Maybe.Maybe SourceTypeSofort)
  -- | source_order: 
  , setupIntentLastSetupError'Source'SourceOrder :: (GHC.Maybe.Maybe SourceOrder)
  -- | statement_descriptor: Extra information about a source. This will appear on your customer\'s statement every time you charge the source.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'StatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
  -- 
  -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Status :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | three_d_secure
  , setupIntentLastSetupError'Source'ThreeDSecure :: (GHC.Maybe.Maybe SourceTypeThreeDSecure)
  -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`amex_express_checkout\`, \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'TokenizationMethod :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | type: The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
  , setupIntentLastSetupError'Source'Type :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Type')
  -- | usage: Either \`reusable\` or \`single_use\`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Usage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | wechat
  , setupIntentLastSetupError'Source'Wechat :: (GHC.Maybe.Maybe SourceTypeWechat)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "account" (setupIntentLastSetupError'Source'Account obj) : (Data.Aeson..=) "account_holder_name" (setupIntentLastSetupError'Source'AccountHolderName obj) : (Data.Aeson..=) "account_holder_type" (setupIntentLastSetupError'Source'AccountHolderType obj) : (Data.Aeson..=) "ach_credit_transfer" (setupIntentLastSetupError'Source'AchCreditTransfer obj) : (Data.Aeson..=) "ach_debit" (setupIntentLastSetupError'Source'AchDebit obj) : (Data.Aeson..=) "address_city" (setupIntentLastSetupError'Source'AddressCity obj) : (Data.Aeson..=) "address_country" (setupIntentLastSetupError'Source'AddressCountry obj) : (Data.Aeson..=) "address_line1" (setupIntentLastSetupError'Source'AddressLine1 obj) : (Data.Aeson..=) "address_line1_check" (setupIntentLastSetupError'Source'AddressLine1Check obj) : (Data.Aeson..=) "address_line2" (setupIntentLastSetupError'Source'AddressLine2 obj) : (Data.Aeson..=) "address_state" (setupIntentLastSetupError'Source'AddressState obj) : (Data.Aeson..=) "address_zip" (setupIntentLastSetupError'Source'AddressZip obj) : (Data.Aeson..=) "address_zip_check" (setupIntentLastSetupError'Source'AddressZipCheck obj) : (Data.Aeson..=) "alipay" (setupIntentLastSetupError'Source'Alipay obj) : (Data.Aeson..=) "amount" (setupIntentLastSetupError'Source'Amount obj) : (Data.Aeson..=) "available_payout_methods" (setupIntentLastSetupError'Source'AvailablePayoutMethods obj) : (Data.Aeson..=) "bancontact" (setupIntentLastSetupError'Source'Bancontact obj) : (Data.Aeson..=) "bank_name" (setupIntentLastSetupError'Source'BankName obj) : (Data.Aeson..=) "brand" (setupIntentLastSetupError'Source'Brand obj) : (Data.Aeson..=) "card" (setupIntentLastSetupError'Source'Card obj) : (Data.Aeson..=) "card_present" (setupIntentLastSetupError'Source'CardPresent obj) : (Data.Aeson..=) "client_secret" (setupIntentLastSetupError'Source'ClientSecret obj) : (Data.Aeson..=) "code_verification" (setupIntentLastSetupError'Source'CodeVerification obj) : (Data.Aeson..=) "country" (setupIntentLastSetupError'Source'Country obj) : (Data.Aeson..=) "created" (setupIntentLastSetupError'Source'Created obj) : (Data.Aeson..=) "currency" (setupIntentLastSetupError'Source'Currency obj) : (Data.Aeson..=) "customer" (setupIntentLastSetupError'Source'Customer obj) : (Data.Aeson..=) "cvc_check" (setupIntentLastSetupError'Source'CvcCheck obj) : (Data.Aeson..=) "default_for_currency" (setupIntentLastSetupError'Source'DefaultForCurrency obj) : (Data.Aeson..=) "dynamic_last4" (setupIntentLastSetupError'Source'DynamicLast4 obj) : (Data.Aeson..=) "eps" (setupIntentLastSetupError'Source'Eps obj) : (Data.Aeson..=) "exp_month" (setupIntentLastSetupError'Source'ExpMonth obj) : (Data.Aeson..=) "exp_year" (setupIntentLastSetupError'Source'ExpYear obj) : (Data.Aeson..=) "fingerprint" (setupIntentLastSetupError'Source'Fingerprint obj) : (Data.Aeson..=) "flow" (setupIntentLastSetupError'Source'Flow obj) : (Data.Aeson..=) "funding" (setupIntentLastSetupError'Source'Funding obj) : (Data.Aeson..=) "giropay" (setupIntentLastSetupError'Source'Giropay obj) : (Data.Aeson..=) "id" (setupIntentLastSetupError'Source'Id obj) : (Data.Aeson..=) "ideal" (setupIntentLastSetupError'Source'Ideal obj) : (Data.Aeson..=) "klarna" (setupIntentLastSetupError'Source'Klarna obj) : (Data.Aeson..=) "last4" (setupIntentLastSetupError'Source'Last4 obj) : (Data.Aeson..=) "livemode" (setupIntentLastSetupError'Source'Livemode obj) : (Data.Aeson..=) "metadata" (setupIntentLastSetupError'Source'Metadata obj) : (Data.Aeson..=) "multibanco" (setupIntentLastSetupError'Source'Multibanco obj) : (Data.Aeson..=) "name" (setupIntentLastSetupError'Source'Name obj) : (Data.Aeson..=) "object" (setupIntentLastSetupError'Source'Object obj) : (Data.Aeson..=) "owner" (setupIntentLastSetupError'Source'Owner obj) : (Data.Aeson..=) "p24" (setupIntentLastSetupError'Source'P24 obj) : (Data.Aeson..=) "receiver" (setupIntentLastSetupError'Source'Receiver obj) : (Data.Aeson..=) "recipient" (setupIntentLastSetupError'Source'Recipient obj) : (Data.Aeson..=) "redirect" (setupIntentLastSetupError'Source'Redirect obj) : (Data.Aeson..=) "routing_number" (setupIntentLastSetupError'Source'RoutingNumber obj) : (Data.Aeson..=) "sepa_debit" (setupIntentLastSetupError'Source'SepaDebit obj) : (Data.Aeson..=) "sofort" (setupIntentLastSetupError'Source'Sofort obj) : (Data.Aeson..=) "source_order" (setupIntentLastSetupError'Source'SourceOrder obj) : (Data.Aeson..=) "statement_descriptor" (setupIntentLastSetupError'Source'StatementDescriptor obj) : (Data.Aeson..=) "status" (setupIntentLastSetupError'Source'Status obj) : (Data.Aeson..=) "three_d_secure" (setupIntentLastSetupError'Source'ThreeDSecure obj) : (Data.Aeson..=) "tokenization_method" (setupIntentLastSetupError'Source'TokenizationMethod obj) : (Data.Aeson..=) "type" (setupIntentLastSetupError'Source'Type obj) : (Data.Aeson..=) "usage" (setupIntentLastSetupError'Source'Usage obj) : (Data.Aeson..=) "wechat" (setupIntentLastSetupError'Source'Wechat obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "account" (setupIntentLastSetupError'Source'Account obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_name" (setupIntentLastSetupError'Source'AccountHolderName obj) GHC.Base.<> ((Data.Aeson..=) "account_holder_type" (setupIntentLastSetupError'Source'AccountHolderType obj) GHC.Base.<> ((Data.Aeson..=) "ach_credit_transfer" (setupIntentLastSetupError'Source'AchCreditTransfer obj) GHC.Base.<> ((Data.Aeson..=) "ach_debit" (setupIntentLastSetupError'Source'AchDebit obj) GHC.Base.<> ((Data.Aeson..=) "address_city" (setupIntentLastSetupError'Source'AddressCity obj) GHC.Base.<> ((Data.Aeson..=) "address_country" (setupIntentLastSetupError'Source'AddressCountry obj) GHC.Base.<> ((Data.Aeson..=) "address_line1" (setupIntentLastSetupError'Source'AddressLine1 obj) GHC.Base.<> ((Data.Aeson..=) "address_line1_check" (setupIntentLastSetupError'Source'AddressLine1Check obj) GHC.Base.<> ((Data.Aeson..=) "address_line2" (setupIntentLastSetupError'Source'AddressLine2 obj) GHC.Base.<> ((Data.Aeson..=) "address_state" (setupIntentLastSetupError'Source'AddressState obj) GHC.Base.<> ((Data.Aeson..=) "address_zip" (setupIntentLastSetupError'Source'AddressZip obj) GHC.Base.<> ((Data.Aeson..=) "address_zip_check" (setupIntentLastSetupError'Source'AddressZipCheck obj) GHC.Base.<> ((Data.Aeson..=) "alipay" (setupIntentLastSetupError'Source'Alipay obj) GHC.Base.<> ((Data.Aeson..=) "amount" (setupIntentLastSetupError'Source'Amount obj) GHC.Base.<> ((Data.Aeson..=) "available_payout_methods" (setupIntentLastSetupError'Source'AvailablePayoutMethods obj) GHC.Base.<> ((Data.Aeson..=) "bancontact" (setupIntentLastSetupError'Source'Bancontact obj) GHC.Base.<> ((Data.Aeson..=) "bank_name" (setupIntentLastSetupError'Source'BankName obj) GHC.Base.<> ((Data.Aeson..=) "brand" (setupIntentLastSetupError'Source'Brand obj) GHC.Base.<> ((Data.Aeson..=) "card" (setupIntentLastSetupError'Source'Card obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (setupIntentLastSetupError'Source'CardPresent obj) GHC.Base.<> ((Data.Aeson..=) "client_secret" (setupIntentLastSetupError'Source'ClientSecret obj) GHC.Base.<> ((Data.Aeson..=) "code_verification" (setupIntentLastSetupError'Source'CodeVerification obj) GHC.Base.<> ((Data.Aeson..=) "country" (setupIntentLastSetupError'Source'Country obj) GHC.Base.<> ((Data.Aeson..=) "created" (setupIntentLastSetupError'Source'Created obj) GHC.Base.<> ((Data.Aeson..=) "currency" (setupIntentLastSetupError'Source'Currency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (setupIntentLastSetupError'Source'Customer obj) GHC.Base.<> ((Data.Aeson..=) "cvc_check" (setupIntentLastSetupError'Source'CvcCheck obj) GHC.Base.<> ((Data.Aeson..=) "default_for_currency" (setupIntentLastSetupError'Source'DefaultForCurrency obj) GHC.Base.<> ((Data.Aeson..=) "dynamic_last4" (setupIntentLastSetupError'Source'DynamicLast4 obj) GHC.Base.<> ((Data.Aeson..=) "eps" (setupIntentLastSetupError'Source'Eps obj) GHC.Base.<> ((Data.Aeson..=) "exp_month" (setupIntentLastSetupError'Source'ExpMonth obj) GHC.Base.<> ((Data.Aeson..=) "exp_year" (setupIntentLastSetupError'Source'ExpYear obj) GHC.Base.<> ((Data.Aeson..=) "fingerprint" (setupIntentLastSetupError'Source'Fingerprint obj) GHC.Base.<> ((Data.Aeson..=) "flow" (setupIntentLastSetupError'Source'Flow obj) GHC.Base.<> ((Data.Aeson..=) "funding" (setupIntentLastSetupError'Source'Funding obj) GHC.Base.<> ((Data.Aeson..=) "giropay" (setupIntentLastSetupError'Source'Giropay obj) GHC.Base.<> ((Data.Aeson..=) "id" (setupIntentLastSetupError'Source'Id obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (setupIntentLastSetupError'Source'Ideal obj) GHC.Base.<> ((Data.Aeson..=) "klarna" (setupIntentLastSetupError'Source'Klarna obj) GHC.Base.<> ((Data.Aeson..=) "last4" (setupIntentLastSetupError'Source'Last4 obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (setupIntentLastSetupError'Source'Livemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (setupIntentLastSetupError'Source'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "multibanco" (setupIntentLastSetupError'Source'Multibanco obj) GHC.Base.<> ((Data.Aeson..=) "name" (setupIntentLastSetupError'Source'Name obj) GHC.Base.<> ((Data.Aeson..=) "object" (setupIntentLastSetupError'Source'Object obj) GHC.Base.<> ((Data.Aeson..=) "owner" (setupIntentLastSetupError'Source'Owner obj) GHC.Base.<> ((Data.Aeson..=) "p24" (setupIntentLastSetupError'Source'P24 obj) GHC.Base.<> ((Data.Aeson..=) "receiver" (setupIntentLastSetupError'Source'Receiver obj) GHC.Base.<> ((Data.Aeson..=) "recipient" (setupIntentLastSetupError'Source'Recipient obj) GHC.Base.<> ((Data.Aeson..=) "redirect" (setupIntentLastSetupError'Source'Redirect obj) GHC.Base.<> ((Data.Aeson..=) "routing_number" (setupIntentLastSetupError'Source'RoutingNumber obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (setupIntentLastSetupError'Source'SepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "sofort" (setupIntentLastSetupError'Source'Sofort obj) GHC.Base.<> ((Data.Aeson..=) "source_order" (setupIntentLastSetupError'Source'SourceOrder obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (setupIntentLastSetupError'Source'StatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "status" (setupIntentLastSetupError'Source'Status obj) GHC.Base.<> ((Data.Aeson..=) "three_d_secure" (setupIntentLastSetupError'Source'ThreeDSecure obj) GHC.Base.<> ((Data.Aeson..=) "tokenization_method" (setupIntentLastSetupError'Source'TokenizationMethod obj) GHC.Base.<> ((Data.Aeson..=) "type" (setupIntentLastSetupError'Source'Type obj) GHC.Base.<> ((Data.Aeson..=) "usage" (setupIntentLastSetupError'Source'Usage obj) GHC.Base.<> (Data.Aeson..=) "wechat" (setupIntentLastSetupError'Source'Wechat obj))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentLastSetupError'Source'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntentLastSetupError'Source'" (\obj -> (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((GHC.Base.pure SetupIntentLastSetupError'Source' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_payout_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_secret")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "code_verification")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "flow")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "owner")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receiver")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "recipient")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "redirect")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_order")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "three_d_secure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tokenization_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat"))
-- | Define the one-of schema setup_intentLast_setup_error\'Source\'Account\'
-- 
-- The ID of the account that the bank account is associated with.
data SetupIntentLastSetupError'Source'Account'Variants
    = SetupIntentLastSetupError'Source'Account'Account Account
    | SetupIntentLastSetupError'Source'Account'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'Account'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SetupIntentLastSetupError'Source'Account'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema setup_intentLast_setup_error\'Source\'Available_payout_methods\'
-- 
-- 
data SetupIntentLastSetupError'Source'AvailablePayoutMethods'
    = SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumOther Data.Aeson.Types.Internal.Value
    | SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumTyped GHC.Base.String
    | SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumStringInstant
    | SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumStringStandard
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'AvailablePayoutMethods'
    where toJSON (SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumStringInstant) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant"
          toJSON (SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumStringStandard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard"
instance Data.Aeson.FromJSON SetupIntentLastSetupError'Source'AvailablePayoutMethods'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "instant")
                                          then SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumStringInstant
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "standard")
                                                then SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumStringStandard
                                                else SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumOther val)
-- | Define the one-of schema setup_intentLast_setup_error\'Source\'Customer\'
-- 
-- The ID of the customer that the bank account is associated with.
data SetupIntentLastSetupError'Source'Customer'Variants
    = SetupIntentLastSetupError'Source'Customer'Customer Customer
    | SetupIntentLastSetupError'Source'Customer'DeletedCustomer DeletedCustomer
    | SetupIntentLastSetupError'Source'Customer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'Customer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SetupIntentLastSetupError'Source'Customer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema setup_intentLast_setup_error\'Source\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data SetupIntentLastSetupError'Source'Metadata' = SetupIntentLastSetupError'Source'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentLastSetupError'Source'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntentLastSetupError'Source'Metadata'" (\obj -> GHC.Base.pure SetupIntentLastSetupError'Source'Metadata')
-- | Defines the enum schema setup_intentLast_setup_error\'Source\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data SetupIntentLastSetupError'Source'Object'
    = SetupIntentLastSetupError'Source'Object'EnumOther Data.Aeson.Types.Internal.Value
    | SetupIntentLastSetupError'Source'Object'EnumTyped GHC.Base.String
    | SetupIntentLastSetupError'Source'Object'EnumStringBankAccount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'Object'
    where toJSON (SetupIntentLastSetupError'Source'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentLastSetupError'Source'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentLastSetupError'Source'Object'EnumStringBankAccount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account"
instance Data.Aeson.FromJSON SetupIntentLastSetupError'Source'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bank_account")
                                          then SetupIntentLastSetupError'Source'Object'EnumStringBankAccount
                                          else SetupIntentLastSetupError'Source'Object'EnumOther val)
-- | Defines the data type for the schema setup_intentLast_setup_error\'Source\'Owner\'
-- 
-- Information about the owner of the payment instrument that may be used or required by particular source types.
data SetupIntentLastSetupError'Source'Owner' = SetupIntentLastSetupError'Source'Owner' {
  -- | address: Owner\'s address.
  setupIntentLastSetupError'Source'Owner'Address :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Owner'Address')
  -- | email: Owner\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'Email :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s full name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Owner\'s phone number (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_address: Verified owner\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , setupIntentLastSetupError'Source'Owner'VerifiedAddress :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Owner'VerifiedAddress')
  -- | verified_email: Verified owner\'s email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'VerifiedEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_name: Verified owner\'s full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'VerifiedName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_phone: Verified owner\'s phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'VerifiedPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'Owner'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (setupIntentLastSetupError'Source'Owner'Address obj) : (Data.Aeson..=) "email" (setupIntentLastSetupError'Source'Owner'Email obj) : (Data.Aeson..=) "name" (setupIntentLastSetupError'Source'Owner'Name obj) : (Data.Aeson..=) "phone" (setupIntentLastSetupError'Source'Owner'Phone obj) : (Data.Aeson..=) "verified_address" (setupIntentLastSetupError'Source'Owner'VerifiedAddress obj) : (Data.Aeson..=) "verified_email" (setupIntentLastSetupError'Source'Owner'VerifiedEmail obj) : (Data.Aeson..=) "verified_name" (setupIntentLastSetupError'Source'Owner'VerifiedName obj) : (Data.Aeson..=) "verified_phone" (setupIntentLastSetupError'Source'Owner'VerifiedPhone obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (setupIntentLastSetupError'Source'Owner'Address obj) GHC.Base.<> ((Data.Aeson..=) "email" (setupIntentLastSetupError'Source'Owner'Email obj) GHC.Base.<> ((Data.Aeson..=) "name" (setupIntentLastSetupError'Source'Owner'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (setupIntentLastSetupError'Source'Owner'Phone obj) GHC.Base.<> ((Data.Aeson..=) "verified_address" (setupIntentLastSetupError'Source'Owner'VerifiedAddress obj) GHC.Base.<> ((Data.Aeson..=) "verified_email" (setupIntentLastSetupError'Source'Owner'VerifiedEmail obj) GHC.Base.<> ((Data.Aeson..=) "verified_name" (setupIntentLastSetupError'Source'Owner'VerifiedName obj) GHC.Base.<> (Data.Aeson..=) "verified_phone" (setupIntentLastSetupError'Source'Owner'VerifiedPhone obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentLastSetupError'Source'Owner'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntentLastSetupError'Source'Owner'" (\obj -> (((((((GHC.Base.pure SetupIntentLastSetupError'Source'Owner' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_phone"))
-- | Defines the data type for the schema setup_intentLast_setup_error\'Source\'Owner\'Address\'
-- 
-- Owner\\\'s address.
data SetupIntentLastSetupError'Source'Owner'Address' = SetupIntentLastSetupError'Source'Owner'Address' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  setupIntentLastSetupError'Source'Owner'Address'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'Address'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'Address'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'Address'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'Address'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'Address'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'Owner'Address'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (setupIntentLastSetupError'Source'Owner'Address'City obj) : (Data.Aeson..=) "country" (setupIntentLastSetupError'Source'Owner'Address'Country obj) : (Data.Aeson..=) "line1" (setupIntentLastSetupError'Source'Owner'Address'Line1 obj) : (Data.Aeson..=) "line2" (setupIntentLastSetupError'Source'Owner'Address'Line2 obj) : (Data.Aeson..=) "postal_code" (setupIntentLastSetupError'Source'Owner'Address'PostalCode obj) : (Data.Aeson..=) "state" (setupIntentLastSetupError'Source'Owner'Address'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (setupIntentLastSetupError'Source'Owner'Address'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (setupIntentLastSetupError'Source'Owner'Address'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (setupIntentLastSetupError'Source'Owner'Address'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (setupIntentLastSetupError'Source'Owner'Address'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (setupIntentLastSetupError'Source'Owner'Address'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (setupIntentLastSetupError'Source'Owner'Address'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentLastSetupError'Source'Owner'Address'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntentLastSetupError'Source'Owner'Address'" (\obj -> (((((GHC.Base.pure SetupIntentLastSetupError'Source'Owner'Address' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema setup_intentLast_setup_error\'Source\'Owner\'Verified_address\'
-- 
-- Verified owner\\\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
data SetupIntentLastSetupError'Source'Owner'VerifiedAddress' = SetupIntentLastSetupError'Source'Owner'VerifiedAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  setupIntentLastSetupError'Source'Owner'VerifiedAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'VerifiedAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'VerifiedAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'VerifiedAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'VerifiedAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentLastSetupError'Source'Owner'VerifiedAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'Owner'VerifiedAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'City obj) : (Data.Aeson..=) "country" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'Country obj) : (Data.Aeson..=) "line1" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'Line1 obj) : (Data.Aeson..=) "line2" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'PostalCode obj) : (Data.Aeson..=) "state" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (setupIntentLastSetupError'Source'Owner'VerifiedAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentLastSetupError'Source'Owner'VerifiedAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntentLastSetupError'Source'Owner'VerifiedAddress'" (\obj -> (((((GHC.Base.pure SetupIntentLastSetupError'Source'Owner'VerifiedAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Define the one-of schema setup_intentLast_setup_error\'Source\'Recipient\'
-- 
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data SetupIntentLastSetupError'Source'Recipient'Variants
    = SetupIntentLastSetupError'Source'Recipient'Recipient Recipient
    | SetupIntentLastSetupError'Source'Recipient'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'Recipient'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SetupIntentLastSetupError'Source'Recipient'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema setup_intentLast_setup_error\'Source\'Type\'
-- 
-- The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
data SetupIntentLastSetupError'Source'Type'
    = SetupIntentLastSetupError'Source'Type'EnumOther Data.Aeson.Types.Internal.Value
    | SetupIntentLastSetupError'Source'Type'EnumTyped GHC.Base.String
    | SetupIntentLastSetupError'Source'Type'EnumStringAchCreditTransfer
    | SetupIntentLastSetupError'Source'Type'EnumStringAchDebit
    | SetupIntentLastSetupError'Source'Type'EnumStringAlipay
    | SetupIntentLastSetupError'Source'Type'EnumStringBancontact
    | SetupIntentLastSetupError'Source'Type'EnumStringCard
    | SetupIntentLastSetupError'Source'Type'EnumStringCardPresent
    | SetupIntentLastSetupError'Source'Type'EnumStringEps
    | SetupIntentLastSetupError'Source'Type'EnumStringGiropay
    | SetupIntentLastSetupError'Source'Type'EnumStringIdeal
    | SetupIntentLastSetupError'Source'Type'EnumStringKlarna
    | SetupIntentLastSetupError'Source'Type'EnumStringMultibanco
    | SetupIntentLastSetupError'Source'Type'EnumStringP24
    | SetupIntentLastSetupError'Source'Type'EnumStringSepaDebit
    | SetupIntentLastSetupError'Source'Type'EnumStringSofort
    | SetupIntentLastSetupError'Source'Type'EnumStringThreeDSecure
    | SetupIntentLastSetupError'Source'Type'EnumStringWechat
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Source'Type'
    where toJSON (SetupIntentLastSetupError'Source'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentLastSetupError'Source'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringAchCreditTransfer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_credit_transfer"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringAchDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_debit"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringAlipay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringBancontact) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bancontact"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringCard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringCardPresent) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_present"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringEps) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eps"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringGiropay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "giropay"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringIdeal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringKlarna) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "klarna"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringMultibanco) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multibanco"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringP24) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "p24"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringSepaDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringSofort) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sofort"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringThreeDSecure) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure"
          toJSON (SetupIntentLastSetupError'Source'Type'EnumStringWechat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wechat"
instance Data.Aeson.FromJSON SetupIntentLastSetupError'Source'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_credit_transfer")
                                          then SetupIntentLastSetupError'Source'Type'EnumStringAchCreditTransfer
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_debit")
                                                then SetupIntentLastSetupError'Source'Type'EnumStringAchDebit
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay")
                                                      then SetupIntentLastSetupError'Source'Type'EnumStringAlipay
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bancontact")
                                                            then SetupIntentLastSetupError'Source'Type'EnumStringBancontact
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card")
                                                                  then SetupIntentLastSetupError'Source'Type'EnumStringCard
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_present")
                                                                        then SetupIntentLastSetupError'Source'Type'EnumStringCardPresent
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eps")
                                                                              then SetupIntentLastSetupError'Source'Type'EnumStringEps
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "giropay")
                                                                                    then SetupIntentLastSetupError'Source'Type'EnumStringGiropay
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal")
                                                                                          then SetupIntentLastSetupError'Source'Type'EnumStringIdeal
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "klarna")
                                                                                                then SetupIntentLastSetupError'Source'Type'EnumStringKlarna
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multibanco")
                                                                                                      then SetupIntentLastSetupError'Source'Type'EnumStringMultibanco
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "p24")
                                                                                                            then SetupIntentLastSetupError'Source'Type'EnumStringP24
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit")
                                                                                                                  then SetupIntentLastSetupError'Source'Type'EnumStringSepaDebit
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sofort")
                                                                                                                        then SetupIntentLastSetupError'Source'Type'EnumStringSofort
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure")
                                                                                                                              then SetupIntentLastSetupError'Source'Type'EnumStringThreeDSecure
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wechat")
                                                                                                                                    then SetupIntentLastSetupError'Source'Type'EnumStringWechat
                                                                                                                                    else SetupIntentLastSetupError'Source'Type'EnumOther val)
-- | Defines the enum schema setup_intentLast_setup_error\'Type\'
-- 
-- The type of error returned. One of \`api_connection_error\`, \`api_error\`, \`authentication_error\`, \`card_error\`, \`idempotency_error\`, \`invalid_request_error\`, or \`rate_limit_error\`
data SetupIntentLastSetupError'Type'
    = SetupIntentLastSetupError'Type'EnumOther Data.Aeson.Types.Internal.Value
    | SetupIntentLastSetupError'Type'EnumTyped GHC.Base.String
    | SetupIntentLastSetupError'Type'EnumStringApiConnectionError
    | SetupIntentLastSetupError'Type'EnumStringApiError
    | SetupIntentLastSetupError'Type'EnumStringAuthenticationError
    | SetupIntentLastSetupError'Type'EnumStringCardError
    | SetupIntentLastSetupError'Type'EnumStringIdempotencyError
    | SetupIntentLastSetupError'Type'EnumStringInvalidRequestError
    | SetupIntentLastSetupError'Type'EnumStringRateLimitError
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentLastSetupError'Type'
    where toJSON (SetupIntentLastSetupError'Type'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentLastSetupError'Type'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentLastSetupError'Type'EnumStringApiConnectionError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_connection_error"
          toJSON (SetupIntentLastSetupError'Type'EnumStringApiError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_error"
          toJSON (SetupIntentLastSetupError'Type'EnumStringAuthenticationError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "authentication_error"
          toJSON (SetupIntentLastSetupError'Type'EnumStringCardError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_error"
          toJSON (SetupIntentLastSetupError'Type'EnumStringIdempotencyError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "idempotency_error"
          toJSON (SetupIntentLastSetupError'Type'EnumStringInvalidRequestError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invalid_request_error"
          toJSON (SetupIntentLastSetupError'Type'EnumStringRateLimitError) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "rate_limit_error"
instance Data.Aeson.FromJSON SetupIntentLastSetupError'Type'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_connection_error")
                                          then SetupIntentLastSetupError'Type'EnumStringApiConnectionError
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "api_error")
                                                then SetupIntentLastSetupError'Type'EnumStringApiError
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "authentication_error")
                                                      then SetupIntentLastSetupError'Type'EnumStringAuthenticationError
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_error")
                                                            then SetupIntentLastSetupError'Type'EnumStringCardError
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "idempotency_error")
                                                                  then SetupIntentLastSetupError'Type'EnumStringIdempotencyError
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "invalid_request_error")
                                                                        then SetupIntentLastSetupError'Type'EnumStringInvalidRequestError
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "rate_limit_error")
                                                                              then SetupIntentLastSetupError'Type'EnumStringRateLimitError
                                                                              else SetupIntentLastSetupError'Type'EnumOther val)
-- | Define the one-of schema setup_intentMandate\'
-- 
-- ID of the multi use Mandate generated by the SetupIntent.
data SetupIntentMandate'Variants
    = SetupIntentMandate'Mandate Mandate
    | SetupIntentMandate'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SetupIntentMandate'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SetupIntentMandate'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema setup_intentMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data SetupIntentMetadata' = SetupIntentMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntentMetadata'" (\obj -> GHC.Base.pure SetupIntentMetadata')
-- | Defines the data type for the schema setup_intentNext_action\'
-- 
-- If present, this property tells you what actions you need to take in order for your customer to continue payment setup.
data SetupIntentNextAction' = SetupIntentNextAction' {
  -- | redirect_to_url: 
  setupIntentNextAction'RedirectToUrl :: (GHC.Maybe.Maybe SetupIntentNextActionRedirectToUrl)
  -- | type: Type of the next action to perform, one of \`redirect_to_url\` or \`use_stripe_sdk\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , setupIntentNextAction'Type :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | use_stripe_sdk: When confirming a SetupIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.
  , setupIntentNextAction'UseStripeSdk :: (GHC.Maybe.Maybe SetupIntentNextAction'UseStripeSdk')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentNextAction'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "redirect_to_url" (setupIntentNextAction'RedirectToUrl obj) : (Data.Aeson..=) "type" (setupIntentNextAction'Type obj) : (Data.Aeson..=) "use_stripe_sdk" (setupIntentNextAction'UseStripeSdk obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "redirect_to_url" (setupIntentNextAction'RedirectToUrl obj) GHC.Base.<> ((Data.Aeson..=) "type" (setupIntentNextAction'Type obj) GHC.Base.<> (Data.Aeson..=) "use_stripe_sdk" (setupIntentNextAction'UseStripeSdk obj)))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentNextAction'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntentNextAction'" (\obj -> ((GHC.Base.pure SetupIntentNextAction' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "redirect_to_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "use_stripe_sdk"))
-- | Defines the data type for the schema setup_intentNext_action\'Use_stripe_sdk\'
-- 
-- When confirming a SetupIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.
data SetupIntentNextAction'UseStripeSdk' = SetupIntentNextAction'UseStripeSdk' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentNextAction'UseStripeSdk'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentNextAction'UseStripeSdk'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntentNextAction'UseStripeSdk'" (\obj -> GHC.Base.pure SetupIntentNextAction'UseStripeSdk')
-- | Defines the enum schema setup_intentObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data SetupIntentObject'
    = SetupIntentObject'EnumOther Data.Aeson.Types.Internal.Value
    | SetupIntentObject'EnumTyped GHC.Base.String
    | SetupIntentObject'EnumStringSetupIntent
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentObject'
    where toJSON (SetupIntentObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentObject'EnumStringSetupIntent) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "setup_intent"
instance Data.Aeson.FromJSON SetupIntentObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "setup_intent")
                                          then SetupIntentObject'EnumStringSetupIntent
                                          else SetupIntentObject'EnumOther val)
-- | Define the one-of schema setup_intentOn_behalf_of\'
-- 
-- The account (if any) for which the setup is intended.
data SetupIntentOnBehalfOf'Variants
    = SetupIntentOnBehalfOf'Account Account
    | SetupIntentOnBehalfOf'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SetupIntentOnBehalfOf'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SetupIntentOnBehalfOf'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema setup_intentPayment_method\'
-- 
-- ID of the payment method used with this SetupIntent.
data SetupIntentPaymentMethod'Variants
    = SetupIntentPaymentMethod'PaymentMethod PaymentMethod
    | SetupIntentPaymentMethod'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SetupIntentPaymentMethod'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SetupIntentPaymentMethod'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema setup_intentPayment_method_options\'
-- 
-- Payment-method-specific configuration for this SetupIntent.
data SetupIntentPaymentMethodOptions' = SetupIntentPaymentMethodOptions' {
  -- | card: 
  setupIntentPaymentMethodOptions'Card :: (GHC.Maybe.Maybe SetupIntentPaymentMethodOptionsCard)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentPaymentMethodOptions'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "card" (setupIntentPaymentMethodOptions'Card obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "card" (setupIntentPaymentMethodOptions'Card obj))
instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentPaymentMethodOptions'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SetupIntentPaymentMethodOptions'" (\obj -> GHC.Base.pure SetupIntentPaymentMethodOptions' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card"))
-- | Define the one-of schema setup_intentSingle_use_mandate\'
-- 
-- ID of the single_use Mandate generated by the SetupIntent.
data SetupIntentSingleUseMandate'Variants
    = SetupIntentSingleUseMandate'Mandate Mandate
    | SetupIntentSingleUseMandate'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SetupIntentSingleUseMandate'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SetupIntentSingleUseMandate'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema setup_intentStatus\'
-- 
-- [Status](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses) of this SetupIntent, one of \`requires_payment_method\`, \`requires_confirmation\`, \`requires_action\`, \`processing\`, \`canceled\`, or \`succeeded\`.
data SetupIntentStatus'
    = SetupIntentStatus'EnumOther Data.Aeson.Types.Internal.Value
    | SetupIntentStatus'EnumTyped GHC.Base.String
    | SetupIntentStatus'EnumStringCanceled
    | SetupIntentStatus'EnumStringProcessing
    | SetupIntentStatus'EnumStringRequiresAction
    | SetupIntentStatus'EnumStringRequiresConfirmation
    | SetupIntentStatus'EnumStringRequiresPaymentMethod
    | SetupIntentStatus'EnumStringSucceeded
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SetupIntentStatus'
    where toJSON (SetupIntentStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SetupIntentStatus'EnumStringCanceled) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled"
          toJSON (SetupIntentStatus'EnumStringProcessing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "processing"
          toJSON (SetupIntentStatus'EnumStringRequiresAction) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_action"
          toJSON (SetupIntentStatus'EnumStringRequiresConfirmation) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_confirmation"
          toJSON (SetupIntentStatus'EnumStringRequiresPaymentMethod) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_payment_method"
          toJSON (SetupIntentStatus'EnumStringSucceeded) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "succeeded"
instance Data.Aeson.FromJSON SetupIntentStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled")
                                          then SetupIntentStatus'EnumStringCanceled
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "processing")
                                                then SetupIntentStatus'EnumStringProcessing
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_action")
                                                      then SetupIntentStatus'EnumStringRequiresAction
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_confirmation")
                                                            then SetupIntentStatus'EnumStringRequiresConfirmation
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "requires_payment_method")
                                                                  then SetupIntentStatus'EnumStringRequiresPaymentMethod
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "succeeded")
                                                                        then SetupIntentStatus'EnumStringSucceeded
                                                                        else SetupIntentStatus'EnumOther val)
-- | Defines the data type for the schema shipping_method
-- 
-- 
data ShippingMethod = ShippingMethod {
  -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the line item.
  shippingMethodAmount :: GHC.Integer.Type.Integer
  -- | 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).
  , shippingMethodCurrency :: GHC.Base.String
  -- | delivery_estimate: The estimated delivery date for the given shipping method. Can be either a specific date or a range.
  , shippingMethodDeliveryEstimate :: (GHC.Maybe.Maybe ShippingMethodDeliveryEstimate')
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , shippingMethodDescription :: GHC.Base.String
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , shippingMethodId :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ShippingMethod
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (shippingMethodAmount obj) : (Data.Aeson..=) "currency" (shippingMethodCurrency obj) : (Data.Aeson..=) "delivery_estimate" (shippingMethodDeliveryEstimate obj) : (Data.Aeson..=) "description" (shippingMethodDescription obj) : (Data.Aeson..=) "id" (shippingMethodId obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (shippingMethodAmount obj) GHC.Base.<> ((Data.Aeson..=) "currency" (shippingMethodCurrency obj) GHC.Base.<> ((Data.Aeson..=) "delivery_estimate" (shippingMethodDeliveryEstimate obj) GHC.Base.<> ((Data.Aeson..=) "description" (shippingMethodDescription obj) GHC.Base.<> (Data.Aeson..=) "id" (shippingMethodId obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON ShippingMethod
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ShippingMethod" (\obj -> ((((GHC.Base.pure ShippingMethod GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "delivery_estimate")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id"))
-- | Defines the data type for the schema shipping_methodDelivery_estimate\'
-- 
-- The estimated delivery date for the given shipping method. Can be either a specific date or a range.
data ShippingMethodDeliveryEstimate' = ShippingMethodDeliveryEstimate' {
  -- | date: If \`type\` is \`\"exact\"\`, \`date\` will be the expected delivery date in the format YYYY-MM-DD.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  shippingMethodDeliveryEstimate'Date :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | earliest: If \`type\` is \`\"range\"\`, \`earliest\` will be be the earliest delivery date in the format YYYY-MM-DD.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , shippingMethodDeliveryEstimate'Earliest :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | latest: If \`type\` is \`\"range\"\`, \`latest\` will be the latest delivery date in the format YYYY-MM-DD.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , shippingMethodDeliveryEstimate'Latest :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | type: The type of estimate. Must be either \`\"range\"\` or \`\"exact\"\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , shippingMethodDeliveryEstimate'Type :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ShippingMethodDeliveryEstimate'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "date" (shippingMethodDeliveryEstimate'Date obj) : (Data.Aeson..=) "earliest" (shippingMethodDeliveryEstimate'Earliest obj) : (Data.Aeson..=) "latest" (shippingMethodDeliveryEstimate'Latest obj) : (Data.Aeson..=) "type" (shippingMethodDeliveryEstimate'Type obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "date" (shippingMethodDeliveryEstimate'Date obj) GHC.Base.<> ((Data.Aeson..=) "earliest" (shippingMethodDeliveryEstimate'Earliest obj) GHC.Base.<> ((Data.Aeson..=) "latest" (shippingMethodDeliveryEstimate'Latest obj) GHC.Base.<> (Data.Aeson..=) "type" (shippingMethodDeliveryEstimate'Type obj))))
instance Data.Aeson.Types.FromJSON.FromJSON ShippingMethodDeliveryEstimate'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ShippingMethodDeliveryEstimate'" (\obj -> (((GHC.Base.pure ShippingMethodDeliveryEstimate' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "earliest")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "latest")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type"))
-- | Defines the data type for the schema sku
-- 
-- Stores representations of [stock keeping units](http:\/\/en.wikipedia.org\/wiki\/Stock_keeping_unit).
-- SKUs describe specific product variations, taking into account any combination of: attributes,
-- currency, and cost. For example, a product may be a T-shirt, whereas a specific SKU represents
-- the \`size: large\`, \`color: red\` version of that shirt.
-- 
-- Can also be used to manage inventory.
-- 
-- Related guide: [Tax, Shipping, and Inventory](https:\/\/stripe.com\/docs\/orders).
data Sku = Sku {
  -- | active: Whether the SKU is available for purchase.
  skuActive :: GHC.Types.Bool
  -- | attributes: A dictionary of attributes and values for the attributes defined by the product. If, for example, a product\'s attributes are \`[\"size\", \"gender\"]\`, a valid SKU has the following dictionary of attributes: \`{\"size\": \"Medium\", \"gender\": \"Unisex\"}\`.
  , skuAttributes :: SkuAttributes'
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , skuCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , skuCurrency :: GHC.Base.String
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , skuId :: GHC.Base.String
  -- | image: The URL of an image for this SKU, meant to be displayable to the customer.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 2048
  , skuImage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | inventory: 
  , skuInventory :: Inventory
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , skuLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , skuMetadata :: SkuMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , skuObject :: SkuObject'
  -- | package_dimensions: The dimensions of this SKU for shipping purposes.
  , skuPackageDimensions :: (GHC.Maybe.Maybe SkuPackageDimensions')
  -- | price: The cost of the item as a positive integer in the smallest currency unit (that is, 100 cents to charge \$1.00, or 100 to charge ¥100, Japanese Yen being a zero-decimal currency).
  , skuPrice :: GHC.Integer.Type.Integer
  -- | product: The ID of the product this SKU is associated with. The product must be currently active.
  , skuProduct :: SkuProduct'Variants
  -- | updated: Time at which the object was last updated. Measured in seconds since the Unix epoch.
  , skuUpdated :: GHC.Integer.Type.Integer
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Sku
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "active" (skuActive obj) : (Data.Aeson..=) "attributes" (skuAttributes obj) : (Data.Aeson..=) "created" (skuCreated obj) : (Data.Aeson..=) "currency" (skuCurrency obj) : (Data.Aeson..=) "id" (skuId obj) : (Data.Aeson..=) "image" (skuImage obj) : (Data.Aeson..=) "inventory" (skuInventory obj) : (Data.Aeson..=) "livemode" (skuLivemode obj) : (Data.Aeson..=) "metadata" (skuMetadata obj) : (Data.Aeson..=) "object" (skuObject obj) : (Data.Aeson..=) "package_dimensions" (skuPackageDimensions obj) : (Data.Aeson..=) "price" (skuPrice obj) : (Data.Aeson..=) "product" (skuProduct obj) : (Data.Aeson..=) "updated" (skuUpdated obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "active" (skuActive obj) GHC.Base.<> ((Data.Aeson..=) "attributes" (skuAttributes obj) GHC.Base.<> ((Data.Aeson..=) "created" (skuCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (skuCurrency obj) GHC.Base.<> ((Data.Aeson..=) "id" (skuId obj) GHC.Base.<> ((Data.Aeson..=) "image" (skuImage obj) GHC.Base.<> ((Data.Aeson..=) "inventory" (skuInventory obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (skuLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (skuMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (skuObject obj) GHC.Base.<> ((Data.Aeson..=) "package_dimensions" (skuPackageDimensions obj) GHC.Base.<> ((Data.Aeson..=) "price" (skuPrice obj) GHC.Base.<> ((Data.Aeson..=) "product" (skuProduct obj) GHC.Base.<> (Data.Aeson..=) "updated" (skuUpdated obj))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Sku
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Sku" (\obj -> (((((((((((((GHC.Base.pure Sku GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "active")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "attributes")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "image")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "inventory")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "package_dimensions")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "price")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "product")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "updated"))
-- | Defines the data type for the schema skuAttributes\'
-- 
-- A dictionary of attributes and values for the attributes defined by the product. If, for example, a product\'s attributes are \`[\"size\", \"gender\"]\`, a valid SKU has the following dictionary of attributes: \`{\"size\": \"Medium\", \"gender\": \"Unisex\"}\`.
data SkuAttributes' = SkuAttributes' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SkuAttributes'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON SkuAttributes'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SkuAttributes'" (\obj -> GHC.Base.pure SkuAttributes')
-- | Defines the data type for the schema skuMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data SkuMetadata' = SkuMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SkuMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON SkuMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SkuMetadata'" (\obj -> GHC.Base.pure SkuMetadata')
-- | Defines the enum schema skuObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data SkuObject'
    = SkuObject'EnumOther Data.Aeson.Types.Internal.Value
    | SkuObject'EnumTyped GHC.Base.String
    | SkuObject'EnumStringSku
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SkuObject'
    where toJSON (SkuObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SkuObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SkuObject'EnumStringSku) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sku"
instance Data.Aeson.FromJSON SkuObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sku")
                                          then SkuObject'EnumStringSku
                                          else SkuObject'EnumOther val)
-- | Defines the data type for the schema skuPackage_dimensions\'
-- 
-- The dimensions of this SKU for shipping purposes.
data SkuPackageDimensions' = SkuPackageDimensions' {
  -- | height: Height, in inches.
  skuPackageDimensions'Height :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | length: Length, in inches.
  , skuPackageDimensions'Length :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | weight: Weight, in ounces.
  , skuPackageDimensions'Weight :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | width: Width, in inches.
  , skuPackageDimensions'Width :: (GHC.Maybe.Maybe GHC.Types.Double)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SkuPackageDimensions'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "height" (skuPackageDimensions'Height obj) : (Data.Aeson..=) "length" (skuPackageDimensions'Length obj) : (Data.Aeson..=) "weight" (skuPackageDimensions'Weight obj) : (Data.Aeson..=) "width" (skuPackageDimensions'Width obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "height" (skuPackageDimensions'Height obj) GHC.Base.<> ((Data.Aeson..=) "length" (skuPackageDimensions'Length obj) GHC.Base.<> ((Data.Aeson..=) "weight" (skuPackageDimensions'Weight obj) GHC.Base.<> (Data.Aeson..=) "width" (skuPackageDimensions'Width obj))))
instance Data.Aeson.Types.FromJSON.FromJSON SkuPackageDimensions'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SkuPackageDimensions'" (\obj -> (((GHC.Base.pure SkuPackageDimensions' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "height")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "length")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "weight")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "width"))
-- | Define the one-of schema skuProduct\'
-- 
-- The ID of the product this SKU is associated with. The product must be currently active.
data SkuProduct'Variants
    = SkuProduct'Product Product | SkuProduct'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SkuProduct'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SkuProduct'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema source
-- 
-- \`Source\` objects allow you to accept a variety of payment methods. They
-- represent a customer\'s payment instrument, and can be used with the Stripe API
-- just like a \`Card\` object: once chargeable, they can be charged, or can be
-- attached to customers.
-- 
-- Related guides: [Sources API](https:\/\/stripe.com\/docs\/sources) and [Sources & Customers](https:\/\/stripe.com\/docs\/sources\/customers).
data Source = Source {
  -- | ach_credit_transfer
  sourceAchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer)
  -- | ach_debit
  , sourceAchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit)
  -- | alipay
  , sourceAlipay :: (GHC.Maybe.Maybe SourceTypeAlipay)
  -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for \`single_use\` sources.
  , sourceAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | bancontact
  , sourceBancontact :: (GHC.Maybe.Maybe SourceTypeBancontact)
  -- | card
  , sourceCard :: (GHC.Maybe.Maybe SourceTypeCard)
  -- | card_present
  , sourceCardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent)
  -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceClientSecret :: GHC.Base.String
  -- | code_verification: 
  , sourceCodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , sourceCreated :: GHC.Integer.Type.Integer
  -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/currencies) associated with the source. This is the currency for which the source will be chargeable once ready. Required for \`single_use\` sources.
  , sourceCurrency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | customer: The ID of the customer to which this source is attached. This will not be present when the source has not been attached to a customer.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceCustomer :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | eps
  , sourceEps :: (GHC.Maybe.Maybe SourceTypeEps)
  -- | flow: The authentication \`flow\` of the source. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceFlow :: GHC.Base.String
  -- | giropay
  , sourceGiropay :: (GHC.Maybe.Maybe SourceTypeGiropay)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceId :: GHC.Base.String
  -- | ideal
  , sourceIdeal :: (GHC.Maybe.Maybe SourceTypeIdeal)
  -- | klarna
  , sourceKlarna :: (GHC.Maybe.Maybe SourceTypeKlarna)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , sourceLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , sourceMetadata :: (GHC.Maybe.Maybe SourceMetadata')
  -- | multibanco
  , sourceMultibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , sourceObject :: SourceObject'
  -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
  , sourceOwner :: (GHC.Maybe.Maybe SourceOwner')
  -- | p24
  , sourceP24 :: (GHC.Maybe.Maybe SourceTypeP24)
  -- | receiver: 
  , sourceReceiver :: (GHC.Maybe.Maybe SourceReceiverFlow)
  -- | redirect: 
  , sourceRedirect :: (GHC.Maybe.Maybe SourceRedirectFlow)
  -- | sepa_debit
  , sourceSepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit)
  -- | sofort
  , sourceSofort :: (GHC.Maybe.Maybe SourceTypeSofort)
  -- | source_order: 
  , sourceSourceOrder :: (GHC.Maybe.Maybe SourceOrder)
  -- | statement_descriptor: Extra information about a source. This will appear on your customer\'s statement every time you charge the source.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceStatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: The status of the source, one of \`canceled\`, \`chargeable\`, \`consumed\`, \`failed\`, or \`pending\`. Only \`chargeable\` sources can be used to create a charge.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceStatus :: GHC.Base.String
  -- | three_d_secure
  , sourceThreeDSecure :: (GHC.Maybe.Maybe SourceTypeThreeDSecure)
  -- | type: The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
  , sourceType :: SourceType'
  -- | usage: Either \`reusable\` or \`single_use\`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceUsage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | wechat
  , sourceWechat :: (GHC.Maybe.Maybe SourceTypeWechat)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Source
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "ach_credit_transfer" (sourceAchCreditTransfer obj) : (Data.Aeson..=) "ach_debit" (sourceAchDebit obj) : (Data.Aeson..=) "alipay" (sourceAlipay obj) : (Data.Aeson..=) "amount" (sourceAmount obj) : (Data.Aeson..=) "bancontact" (sourceBancontact obj) : (Data.Aeson..=) "card" (sourceCard obj) : (Data.Aeson..=) "card_present" (sourceCardPresent obj) : (Data.Aeson..=) "client_secret" (sourceClientSecret obj) : (Data.Aeson..=) "code_verification" (sourceCodeVerification obj) : (Data.Aeson..=) "created" (sourceCreated obj) : (Data.Aeson..=) "currency" (sourceCurrency obj) : (Data.Aeson..=) "customer" (sourceCustomer obj) : (Data.Aeson..=) "eps" (sourceEps obj) : (Data.Aeson..=) "flow" (sourceFlow obj) : (Data.Aeson..=) "giropay" (sourceGiropay obj) : (Data.Aeson..=) "id" (sourceId obj) : (Data.Aeson..=) "ideal" (sourceIdeal obj) : (Data.Aeson..=) "klarna" (sourceKlarna obj) : (Data.Aeson..=) "livemode" (sourceLivemode obj) : (Data.Aeson..=) "metadata" (sourceMetadata obj) : (Data.Aeson..=) "multibanco" (sourceMultibanco obj) : (Data.Aeson..=) "object" (sourceObject obj) : (Data.Aeson..=) "owner" (sourceOwner obj) : (Data.Aeson..=) "p24" (sourceP24 obj) : (Data.Aeson..=) "receiver" (sourceReceiver obj) : (Data.Aeson..=) "redirect" (sourceRedirect obj) : (Data.Aeson..=) "sepa_debit" (sourceSepaDebit obj) : (Data.Aeson..=) "sofort" (sourceSofort obj) : (Data.Aeson..=) "source_order" (sourceSourceOrder obj) : (Data.Aeson..=) "statement_descriptor" (sourceStatementDescriptor obj) : (Data.Aeson..=) "status" (sourceStatus obj) : (Data.Aeson..=) "three_d_secure" (sourceThreeDSecure obj) : (Data.Aeson..=) "type" (sourceType obj) : (Data.Aeson..=) "usage" (sourceUsage obj) : (Data.Aeson..=) "wechat" (sourceWechat obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "ach_credit_transfer" (sourceAchCreditTransfer obj) GHC.Base.<> ((Data.Aeson..=) "ach_debit" (sourceAchDebit obj) GHC.Base.<> ((Data.Aeson..=) "alipay" (sourceAlipay obj) GHC.Base.<> ((Data.Aeson..=) "amount" (sourceAmount obj) GHC.Base.<> ((Data.Aeson..=) "bancontact" (sourceBancontact obj) GHC.Base.<> ((Data.Aeson..=) "card" (sourceCard obj) GHC.Base.<> ((Data.Aeson..=) "card_present" (sourceCardPresent obj) GHC.Base.<> ((Data.Aeson..=) "client_secret" (sourceClientSecret obj) GHC.Base.<> ((Data.Aeson..=) "code_verification" (sourceCodeVerification obj) GHC.Base.<> ((Data.Aeson..=) "created" (sourceCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (sourceCurrency obj) GHC.Base.<> ((Data.Aeson..=) "customer" (sourceCustomer obj) GHC.Base.<> ((Data.Aeson..=) "eps" (sourceEps obj) GHC.Base.<> ((Data.Aeson..=) "flow" (sourceFlow obj) GHC.Base.<> ((Data.Aeson..=) "giropay" (sourceGiropay obj) GHC.Base.<> ((Data.Aeson..=) "id" (sourceId obj) GHC.Base.<> ((Data.Aeson..=) "ideal" (sourceIdeal obj) GHC.Base.<> ((Data.Aeson..=) "klarna" (sourceKlarna obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (sourceLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (sourceMetadata obj) GHC.Base.<> ((Data.Aeson..=) "multibanco" (sourceMultibanco obj) GHC.Base.<> ((Data.Aeson..=) "object" (sourceObject obj) GHC.Base.<> ((Data.Aeson..=) "owner" (sourceOwner obj) GHC.Base.<> ((Data.Aeson..=) "p24" (sourceP24 obj) GHC.Base.<> ((Data.Aeson..=) "receiver" (sourceReceiver obj) GHC.Base.<> ((Data.Aeson..=) "redirect" (sourceRedirect obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (sourceSepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "sofort" (sourceSofort obj) GHC.Base.<> ((Data.Aeson..=) "source_order" (sourceSourceOrder obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (sourceStatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "status" (sourceStatus obj) GHC.Base.<> ((Data.Aeson..=) "three_d_secure" (sourceThreeDSecure obj) GHC.Base.<> ((Data.Aeson..=) "type" (sourceType obj) GHC.Base.<> ((Data.Aeson..=) "usage" (sourceUsage obj) GHC.Base.<> (Data.Aeson..=) "wechat" (sourceWechat obj)))))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Source
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Source" (\obj -> ((((((((((((((((((((((((((((((((((GHC.Base.pure Source GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "client_secret")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "code_verification")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "flow")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "owner")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receiver")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "redirect")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_order")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "three_d_secure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat"))
-- | Defines the data type for the schema sourceMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data SourceMetadata' = SourceMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON SourceMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SourceMetadata'" (\obj -> GHC.Base.pure SourceMetadata')
-- | Defines the enum schema sourceObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data SourceObject'
    = SourceObject'EnumOther Data.Aeson.Types.Internal.Value
    | SourceObject'EnumTyped GHC.Base.String
    | SourceObject'EnumStringSource
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceObject'
    where toJSON (SourceObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SourceObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SourceObject'EnumStringSource) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "source"
instance Data.Aeson.FromJSON SourceObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "source")
                                          then SourceObject'EnumStringSource
                                          else SourceObject'EnumOther val)
-- | Defines the data type for the schema sourceOwner\'
-- 
-- Information about the owner of the payment instrument that may be used or required by particular source types.
data SourceOwner' = SourceOwner' {
  -- | address: Owner\'s address.
  sourceOwner'Address :: (GHC.Maybe.Maybe SourceOwner'Address')
  -- | email: Owner\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'Email :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s full name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'Name :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Owner\'s phone number (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'Phone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_address: Verified owner\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , sourceOwner'VerifiedAddress :: (GHC.Maybe.Maybe SourceOwner'VerifiedAddress')
  -- | verified_email: Verified owner\'s email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'VerifiedEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_name: Verified owner\'s full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'VerifiedName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_phone: Verified owner\'s phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'VerifiedPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceOwner'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (sourceOwner'Address obj) : (Data.Aeson..=) "email" (sourceOwner'Email obj) : (Data.Aeson..=) "name" (sourceOwner'Name obj) : (Data.Aeson..=) "phone" (sourceOwner'Phone obj) : (Data.Aeson..=) "verified_address" (sourceOwner'VerifiedAddress obj) : (Data.Aeson..=) "verified_email" (sourceOwner'VerifiedEmail obj) : (Data.Aeson..=) "verified_name" (sourceOwner'VerifiedName obj) : (Data.Aeson..=) "verified_phone" (sourceOwner'VerifiedPhone obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (sourceOwner'Address obj) GHC.Base.<> ((Data.Aeson..=) "email" (sourceOwner'Email obj) GHC.Base.<> ((Data.Aeson..=) "name" (sourceOwner'Name obj) GHC.Base.<> ((Data.Aeson..=) "phone" (sourceOwner'Phone obj) GHC.Base.<> ((Data.Aeson..=) "verified_address" (sourceOwner'VerifiedAddress obj) GHC.Base.<> ((Data.Aeson..=) "verified_email" (sourceOwner'VerifiedEmail obj) GHC.Base.<> ((Data.Aeson..=) "verified_name" (sourceOwner'VerifiedName obj) GHC.Base.<> (Data.Aeson..=) "verified_phone" (sourceOwner'VerifiedPhone obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SourceOwner'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SourceOwner'" (\obj -> (((((((GHC.Base.pure SourceOwner' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_phone"))
-- | Defines the data type for the schema sourceOwner\'Address\'
-- 
-- Owner\\\'s address.
data SourceOwner'Address' = SourceOwner'Address' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  sourceOwner'Address'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'Address'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'Address'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'Address'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'Address'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'Address'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceOwner'Address'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (sourceOwner'Address'City obj) : (Data.Aeson..=) "country" (sourceOwner'Address'Country obj) : (Data.Aeson..=) "line1" (sourceOwner'Address'Line1 obj) : (Data.Aeson..=) "line2" (sourceOwner'Address'Line2 obj) : (Data.Aeson..=) "postal_code" (sourceOwner'Address'PostalCode obj) : (Data.Aeson..=) "state" (sourceOwner'Address'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (sourceOwner'Address'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (sourceOwner'Address'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (sourceOwner'Address'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (sourceOwner'Address'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (sourceOwner'Address'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (sourceOwner'Address'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON SourceOwner'Address'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SourceOwner'Address'" (\obj -> (((((GHC.Base.pure SourceOwner'Address' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema sourceOwner\'Verified_address\'
-- 
-- Verified owner\\\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
data SourceOwner'VerifiedAddress' = SourceOwner'VerifiedAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  sourceOwner'VerifiedAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'VerifiedAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'VerifiedAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'VerifiedAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'VerifiedAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwner'VerifiedAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceOwner'VerifiedAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (sourceOwner'VerifiedAddress'City obj) : (Data.Aeson..=) "country" (sourceOwner'VerifiedAddress'Country obj) : (Data.Aeson..=) "line1" (sourceOwner'VerifiedAddress'Line1 obj) : (Data.Aeson..=) "line2" (sourceOwner'VerifiedAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (sourceOwner'VerifiedAddress'PostalCode obj) : (Data.Aeson..=) "state" (sourceOwner'VerifiedAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (sourceOwner'VerifiedAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (sourceOwner'VerifiedAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (sourceOwner'VerifiedAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (sourceOwner'VerifiedAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (sourceOwner'VerifiedAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (sourceOwner'VerifiedAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON SourceOwner'VerifiedAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SourceOwner'VerifiedAddress'" (\obj -> (((((GHC.Base.pure SourceOwner'VerifiedAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the enum schema sourceType\'
-- 
-- The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
data SourceType'
    = SourceType'EnumOther Data.Aeson.Types.Internal.Value
    | SourceType'EnumTyped GHC.Base.String
    | SourceType'EnumStringAchCreditTransfer
    | SourceType'EnumStringAchDebit
    | SourceType'EnumStringAlipay
    | SourceType'EnumStringBancontact
    | SourceType'EnumStringCard
    | SourceType'EnumStringCardPresent
    | SourceType'EnumStringEps
    | SourceType'EnumStringGiropay
    | SourceType'EnumStringIdeal
    | SourceType'EnumStringKlarna
    | SourceType'EnumStringMultibanco
    | SourceType'EnumStringP24
    | SourceType'EnumStringSepaDebit
    | SourceType'EnumStringSofort
    | SourceType'EnumStringThreeDSecure
    | SourceType'EnumStringWechat
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceType'
    where toJSON (SourceType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SourceType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SourceType'EnumStringAchCreditTransfer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_credit_transfer"
          toJSON (SourceType'EnumStringAchDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_debit"
          toJSON (SourceType'EnumStringAlipay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay"
          toJSON (SourceType'EnumStringBancontact) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bancontact"
          toJSON (SourceType'EnumStringCard) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card"
          toJSON (SourceType'EnumStringCardPresent) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_present"
          toJSON (SourceType'EnumStringEps) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eps"
          toJSON (SourceType'EnumStringGiropay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "giropay"
          toJSON (SourceType'EnumStringIdeal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal"
          toJSON (SourceType'EnumStringKlarna) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "klarna"
          toJSON (SourceType'EnumStringMultibanco) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multibanco"
          toJSON (SourceType'EnumStringP24) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "p24"
          toJSON (SourceType'EnumStringSepaDebit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit"
          toJSON (SourceType'EnumStringSofort) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sofort"
          toJSON (SourceType'EnumStringThreeDSecure) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure"
          toJSON (SourceType'EnumStringWechat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wechat"
instance Data.Aeson.FromJSON SourceType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_credit_transfer")
                                          then SourceType'EnumStringAchCreditTransfer
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ach_debit")
                                                then SourceType'EnumStringAchDebit
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "alipay")
                                                      then SourceType'EnumStringAlipay
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "bancontact")
                                                            then SourceType'EnumStringBancontact
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card")
                                                                  then SourceType'EnumStringCard
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "card_present")
                                                                        then SourceType'EnumStringCardPresent
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eps")
                                                                              then SourceType'EnumStringEps
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "giropay")
                                                                                    then SourceType'EnumStringGiropay
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ideal")
                                                                                          then SourceType'EnumStringIdeal
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "klarna")
                                                                                                then SourceType'EnumStringKlarna
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "multibanco")
                                                                                                      then SourceType'EnumStringMultibanco
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "p24")
                                                                                                            then SourceType'EnumStringP24
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sepa_debit")
                                                                                                                  then SourceType'EnumStringSepaDebit
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sofort")
                                                                                                                        then SourceType'EnumStringSofort
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure")
                                                                                                                              then SourceType'EnumStringThreeDSecure
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "wechat")
                                                                                                                                    then SourceType'EnumStringWechat
                                                                                                                                    else SourceType'EnumOther val)
-- | Defines the data type for the schema source_mandate_notification
-- 
-- Source mandate notifications should be created when a notification related to
-- a source mandate must be sent to the payer. They will trigger a webhook or
-- deliver an email to the customer.
data SourceMandateNotification = SourceMandateNotification {
  -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the amount associated with the mandate notification. The amount is expressed in the currency of the underlying source. Required if the notification type is \`debit_initiated\`.
  sourceMandateNotificationAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | bacs_debit: 
  , sourceMandateNotificationBacsDebit :: (GHC.Maybe.Maybe SourceMandateNotificationBacsDebitData)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , sourceMandateNotificationCreated :: GHC.Integer.Type.Integer
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceMandateNotificationId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , sourceMandateNotificationLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , sourceMandateNotificationObject :: SourceMandateNotificationObject'
  -- | reason: The reason of the mandate notification. Valid reasons are \`mandate_confirmed\` or \`debit_initiated\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceMandateNotificationReason :: GHC.Base.String
  -- | sepa_debit: 
  , sourceMandateNotificationSepaDebit :: (GHC.Maybe.Maybe SourceMandateNotificationSepaDebitData)
  -- | source: \`Source\` objects allow you to accept a variety of payment methods. They
  -- represent a customer\'s payment instrument, and can be used with the Stripe API
  -- just like a \`Card\` object: once chargeable, they can be charged, or can be
  -- attached to customers.
  -- 
  -- Related guides: [Sources API](https:\/\/stripe.com\/docs\/sources) and [Sources & Customers](https:\/\/stripe.com\/docs\/sources\/customers).
  , sourceMandateNotificationSource :: Source
  -- | status: The status of the mandate notification. Valid statuses are \`pending\` or \`submitted\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceMandateNotificationStatus :: GHC.Base.String
  -- | type: The type of source this mandate notification is attached to. Should be the source type identifier code for the payment method, such as \`three_d_secure\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceMandateNotificationType :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceMandateNotification
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (sourceMandateNotificationAmount obj) : (Data.Aeson..=) "bacs_debit" (sourceMandateNotificationBacsDebit obj) : (Data.Aeson..=) "created" (sourceMandateNotificationCreated obj) : (Data.Aeson..=) "id" (sourceMandateNotificationId obj) : (Data.Aeson..=) "livemode" (sourceMandateNotificationLivemode obj) : (Data.Aeson..=) "object" (sourceMandateNotificationObject obj) : (Data.Aeson..=) "reason" (sourceMandateNotificationReason obj) : (Data.Aeson..=) "sepa_debit" (sourceMandateNotificationSepaDebit obj) : (Data.Aeson..=) "source" (sourceMandateNotificationSource obj) : (Data.Aeson..=) "status" (sourceMandateNotificationStatus obj) : (Data.Aeson..=) "type" (sourceMandateNotificationType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (sourceMandateNotificationAmount obj) GHC.Base.<> ((Data.Aeson..=) "bacs_debit" (sourceMandateNotificationBacsDebit obj) GHC.Base.<> ((Data.Aeson..=) "created" (sourceMandateNotificationCreated obj) GHC.Base.<> ((Data.Aeson..=) "id" (sourceMandateNotificationId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (sourceMandateNotificationLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (sourceMandateNotificationObject obj) GHC.Base.<> ((Data.Aeson..=) "reason" (sourceMandateNotificationReason obj) GHC.Base.<> ((Data.Aeson..=) "sepa_debit" (sourceMandateNotificationSepaDebit obj) GHC.Base.<> ((Data.Aeson..=) "source" (sourceMandateNotificationSource obj) GHC.Base.<> ((Data.Aeson..=) "status" (sourceMandateNotificationStatus obj) GHC.Base.<> (Data.Aeson..=) "type" (sourceMandateNotificationType obj)))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SourceMandateNotification
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SourceMandateNotification" (\obj -> ((((((((((GHC.Base.pure SourceMandateNotification GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bacs_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "reason")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "source")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Defines the enum schema source_mandate_notificationObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data SourceMandateNotificationObject'
    = SourceMandateNotificationObject'EnumOther Data.Aeson.Types.Internal.Value
    | SourceMandateNotificationObject'EnumTyped GHC.Base.String
    | SourceMandateNotificationObject'EnumStringSourceMandateNotification
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceMandateNotificationObject'
    where toJSON (SourceMandateNotificationObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SourceMandateNotificationObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SourceMandateNotificationObject'EnumStringSourceMandateNotification) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "source_mandate_notification"
instance Data.Aeson.FromJSON SourceMandateNotificationObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "source_mandate_notification")
                                          then SourceMandateNotificationObject'EnumStringSourceMandateNotification
                                          else SourceMandateNotificationObject'EnumOther val)
-- | Defines the data type for the schema source_owner
-- 
-- 
data SourceOwner = SourceOwner {
  -- | address: Owner\'s address.
  sourceOwnerAddress :: (GHC.Maybe.Maybe SourceOwnerAddress')
  -- | email: Owner\'s email address.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | name: Owner\'s full name.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | phone: Owner\'s phone number (including extension).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_address: Verified owner\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  , sourceOwnerVerifiedAddress :: (GHC.Maybe.Maybe SourceOwnerVerifiedAddress')
  -- | verified_email: Verified owner\'s email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerVerifiedEmail :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_name: Verified owner\'s full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerVerifiedName :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | verified_phone: Verified owner\'s phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerVerifiedPhone :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceOwner
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "address" (sourceOwnerAddress obj) : (Data.Aeson..=) "email" (sourceOwnerEmail obj) : (Data.Aeson..=) "name" (sourceOwnerName obj) : (Data.Aeson..=) "phone" (sourceOwnerPhone obj) : (Data.Aeson..=) "verified_address" (sourceOwnerVerifiedAddress obj) : (Data.Aeson..=) "verified_email" (sourceOwnerVerifiedEmail obj) : (Data.Aeson..=) "verified_name" (sourceOwnerVerifiedName obj) : (Data.Aeson..=) "verified_phone" (sourceOwnerVerifiedPhone obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "address" (sourceOwnerAddress obj) GHC.Base.<> ((Data.Aeson..=) "email" (sourceOwnerEmail obj) GHC.Base.<> ((Data.Aeson..=) "name" (sourceOwnerName obj) GHC.Base.<> ((Data.Aeson..=) "phone" (sourceOwnerPhone obj) GHC.Base.<> ((Data.Aeson..=) "verified_address" (sourceOwnerVerifiedAddress obj) GHC.Base.<> ((Data.Aeson..=) "verified_email" (sourceOwnerVerifiedEmail obj) GHC.Base.<> ((Data.Aeson..=) "verified_name" (sourceOwnerVerifiedName obj) GHC.Base.<> (Data.Aeson..=) "verified_phone" (sourceOwnerVerifiedPhone obj))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SourceOwner
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SourceOwner" (\obj -> (((((((GHC.Base.pure SourceOwner GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_phone"))
-- | Defines the data type for the schema source_ownerAddress\'
-- 
-- Owner\\\'s address.
data SourceOwnerAddress' = SourceOwnerAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  sourceOwnerAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceOwnerAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (sourceOwnerAddress'City obj) : (Data.Aeson..=) "country" (sourceOwnerAddress'Country obj) : (Data.Aeson..=) "line1" (sourceOwnerAddress'Line1 obj) : (Data.Aeson..=) "line2" (sourceOwnerAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (sourceOwnerAddress'PostalCode obj) : (Data.Aeson..=) "state" (sourceOwnerAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (sourceOwnerAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (sourceOwnerAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (sourceOwnerAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (sourceOwnerAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (sourceOwnerAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (sourceOwnerAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON SourceOwnerAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SourceOwnerAddress'" (\obj -> (((((GHC.Base.pure SourceOwnerAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema source_ownerVerified_address\'
-- 
-- Verified owner\\\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
data SourceOwnerVerifiedAddress' = SourceOwnerVerifiedAddress' {
  -- | city: City, district, suburb, town, or village.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  sourceOwnerVerifiedAddress'City :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerVerifiedAddress'Country :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line1: Address line 1 (e.g., street, PO Box, or company name).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerVerifiedAddress'Line1 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerVerifiedAddress'Line2 :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | postal_code: ZIP or postal code.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerVerifiedAddress'PostalCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | state: State, county, province, or region.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , sourceOwnerVerifiedAddress'State :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SourceOwnerVerifiedAddress'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "city" (sourceOwnerVerifiedAddress'City obj) : (Data.Aeson..=) "country" (sourceOwnerVerifiedAddress'Country obj) : (Data.Aeson..=) "line1" (sourceOwnerVerifiedAddress'Line1 obj) : (Data.Aeson..=) "line2" (sourceOwnerVerifiedAddress'Line2 obj) : (Data.Aeson..=) "postal_code" (sourceOwnerVerifiedAddress'PostalCode obj) : (Data.Aeson..=) "state" (sourceOwnerVerifiedAddress'State obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "city" (sourceOwnerVerifiedAddress'City obj) GHC.Base.<> ((Data.Aeson..=) "country" (sourceOwnerVerifiedAddress'Country obj) GHC.Base.<> ((Data.Aeson..=) "line1" (sourceOwnerVerifiedAddress'Line1 obj) GHC.Base.<> ((Data.Aeson..=) "line2" (sourceOwnerVerifiedAddress'Line2 obj) GHC.Base.<> ((Data.Aeson..=) "postal_code" (sourceOwnerVerifiedAddress'PostalCode obj) GHC.Base.<> (Data.Aeson..=) "state" (sourceOwnerVerifiedAddress'State obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON SourceOwnerVerifiedAddress'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SourceOwnerVerifiedAddress'" (\obj -> (((((GHC.Base.pure SourceOwnerVerifiedAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state"))
-- | Defines the data type for the schema subscription
-- 
-- Subscriptions allow you to charge a customer on a recurring basis.
-- 
-- Related guide: [Creating Subscriptions](https:\/\/stripe.com\/docs\/billing\/subscriptions\/creating).
data Subscription = Subscription {
  -- | application_fee_percent: A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice subtotal that will be transferred to the application owner\'s Stripe account.
  subscriptionApplicationFeePercent :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | billing_cycle_anchor: Determines the date of the first full invoice, and, for plans with \`month\` or \`year\` intervals, the day of the month for subsequent invoices.
  , subscriptionBillingCycleAnchor :: GHC.Integer.Type.Integer
  -- | billing_thresholds: Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
  , subscriptionBillingThresholds :: (GHC.Maybe.Maybe SubscriptionBillingThresholds')
  -- | cancel_at: A date in the future at which the subscription will automatically get canceled
  , subscriptionCancelAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | cancel_at_period_end: If the subscription has been canceled with the \`at_period_end\` flag set to \`true\`, \`cancel_at_period_end\` on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.
  , subscriptionCancelAtPeriodEnd :: GHC.Types.Bool
  -- | canceled_at: If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with \`cancel_at_period_end\`, \`canceled_at\` will still reflect the date of the initial cancellation request, not the end of the subscription period when the subscription is automatically moved to a canceled state.
  , subscriptionCanceledAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | collection_method: Either \`charge_automatically\`, or \`send_invoice\`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.
  , subscriptionCollectionMethod :: (GHC.Maybe.Maybe SubscriptionCollectionMethod')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , subscriptionCreated :: GHC.Integer.Type.Integer
  -- | current_period_end: End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.
  , subscriptionCurrentPeriodEnd :: GHC.Integer.Type.Integer
  -- | current_period_start: Start of the current period that the subscription has been invoiced for.
  , subscriptionCurrentPeriodStart :: GHC.Integer.Type.Integer
  -- | customer: ID of the customer who owns the subscription.
  , subscriptionCustomer :: SubscriptionCustomer'Variants
  -- | days_until_due: Number of days a customer has to pay invoices generated by this subscription. This value will be \`null\` for subscriptions where \`collection_method=charge_automatically\`.
  , subscriptionDaysUntilDue :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | default_payment_method: ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. If not set, invoices will use the default payment method in the customer\'s invoice settings.
  , subscriptionDefaultPaymentMethod :: (GHC.Maybe.Maybe SubscriptionDefaultPaymentMethod'Variants)
  -- | default_source: ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If not set, defaults to the customer\'s default source.
  , subscriptionDefaultSource :: (GHC.Maybe.Maybe SubscriptionDefaultSource'Variants)
  -- | default_tax_rates: The tax rates that will apply to any subscription item that does not have \`tax_rates\` set. Invoices created will have their \`default_tax_rates\` populated from the subscription.
  , subscriptionDefaultTaxRates :: (GHC.Maybe.Maybe ([] TaxRate))
  -- | discount: Describes the current discount applied to this subscription, if there is one. When billing, a discount applied to a subscription overrides a discount applied on a customer-wide basis.
  , subscriptionDiscount :: (GHC.Maybe.Maybe SubscriptionDiscount')
  -- | ended_at: If the subscription has ended, the date the subscription ended.
  , subscriptionEndedAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , subscriptionId :: GHC.Base.String
  -- | items: List of subscription items, each with an attached plan.
  , subscriptionItems :: SubscriptionItems'
  -- | latest_invoice: The most recent invoice this subscription has generated.
  , subscriptionLatestInvoice :: (GHC.Maybe.Maybe SubscriptionLatestInvoice'Variants)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , subscriptionLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , subscriptionMetadata :: SubscriptionMetadata'
  -- | next_pending_invoice_item_invoice: Specifies the approximate timestamp on which any pending invoice items will be billed according to the schedule provided at \`pending_invoice_item_interval\`.
  , subscriptionNextPendingInvoiceItemInvoice :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , subscriptionObject :: SubscriptionObject'
  -- | pending_invoice_item_interval: Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https:\/\/stripe.com\/docs\/api\#create_invoice) for the given subscription at the specified interval.
  , subscriptionPendingInvoiceItemInterval :: (GHC.Maybe.Maybe SubscriptionPendingInvoiceItemInterval')
  -- | pending_setup_intent: You can use this [SetupIntent](https:\/\/stripe.com\/docs\/api\/setup_intents) to collect user authentication when creating a subscription without immediate payment or updating a subscription\'s payment method, allowing you to optimize for off-session payments. Learn more in the [SCA Migration Guide](https:\/\/stripe.com\/docs\/billing\/migration\/strong-customer-authentication\#scenario-2).
  , subscriptionPendingSetupIntent :: (GHC.Maybe.Maybe SubscriptionPendingSetupIntent'Variants)
  -- | pending_update: If specified, [pending updates](https:\/\/stripe.com\/docs\/billing\/subscriptions\/pending-updates) that will be applied to the subscription once the \`latest_invoice\` has been paid.
  , subscriptionPendingUpdate :: (GHC.Maybe.Maybe SubscriptionPendingUpdate')
  -- | plan: Hash describing the plan the customer is subscribed to. Only set if the subscription contains a single plan.
  , subscriptionPlan :: (GHC.Maybe.Maybe SubscriptionPlan')
  -- | quantity: The quantity of the plan to which the customer is subscribed. For example, if your plan is \$10\/user\/month, and your customer has 5 users, you could pass 5 as the quantity to have the customer charged \$50 (5 x \$10) monthly. Only set if the subscription contains a single plan.
  , subscriptionQuantity :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | schedule: The schedule attached to the subscription
  , subscriptionSchedule :: (GHC.Maybe.Maybe SubscriptionSchedule'Variants)
  -- | start_date: Date when the subscription was first created. The date might differ from the \`created\` date due to backdating.
  , subscriptionStartDate :: GHC.Integer.Type.Integer
  -- | status: Possible values are \`incomplete\`, \`incomplete_expired\`, \`trialing\`, \`active\`, \`past_due\`, \`canceled\`, or \`unpaid\`. 
  -- 
  -- For \`collection_method=charge_automatically\` a subscription moves into \`incomplete\` if the initial payment attempt fails. A subscription in this state can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an \`active\` state. If the first invoice is not paid within 23 hours, the subscription transitions to \`incomplete_expired\`. This is a terminal state, the open invoice will be voided and no further invoices will be generated. 
  -- 
  -- A subscription that is currently in a trial period is \`trialing\` and moves to \`active\` when the trial period is over. 
  -- 
  -- If subscription \`collection_method=charge_automatically\` it becomes \`past_due\` when payment to renew it fails and \`canceled\` or \`unpaid\` (depending on your subscriptions settings) when Stripe has exhausted all payment retry attempts. 
  -- 
  -- If subscription \`collection_method=send_invoice\` it becomes \`past_due\` when its invoice is not paid by the due date, and \`canceled\` or \`unpaid\` if it is still not paid by an additional deadline after that. Note that when a subscription has a status of \`unpaid\`, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices.
  , subscriptionStatus :: SubscriptionStatus'
  -- | tax_percent: If provided, each invoice created by this subscription will apply the tax rate, increasing the amount billed to the customer.
  , subscriptionTaxPercent :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | trial_end: If the subscription has a trial, the end of that trial.
  , subscriptionTrialEnd :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | trial_start: If the subscription has a trial, the beginning of that trial.
  , subscriptionTrialStart :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Subscription
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "application_fee_percent" (subscriptionApplicationFeePercent obj) : (Data.Aeson..=) "billing_cycle_anchor" (subscriptionBillingCycleAnchor obj) : (Data.Aeson..=) "billing_thresholds" (subscriptionBillingThresholds obj) : (Data.Aeson..=) "cancel_at" (subscriptionCancelAt obj) : (Data.Aeson..=) "cancel_at_period_end" (subscriptionCancelAtPeriodEnd obj) : (Data.Aeson..=) "canceled_at" (subscriptionCanceledAt obj) : (Data.Aeson..=) "collection_method" (subscriptionCollectionMethod obj) : (Data.Aeson..=) "created" (subscriptionCreated obj) : (Data.Aeson..=) "current_period_end" (subscriptionCurrentPeriodEnd obj) : (Data.Aeson..=) "current_period_start" (subscriptionCurrentPeriodStart obj) : (Data.Aeson..=) "customer" (subscriptionCustomer obj) : (Data.Aeson..=) "days_until_due" (subscriptionDaysUntilDue obj) : (Data.Aeson..=) "default_payment_method" (subscriptionDefaultPaymentMethod obj) : (Data.Aeson..=) "default_source" (subscriptionDefaultSource obj) : (Data.Aeson..=) "default_tax_rates" (subscriptionDefaultTaxRates obj) : (Data.Aeson..=) "discount" (subscriptionDiscount obj) : (Data.Aeson..=) "ended_at" (subscriptionEndedAt obj) : (Data.Aeson..=) "id" (subscriptionId obj) : (Data.Aeson..=) "items" (subscriptionItems obj) : (Data.Aeson..=) "latest_invoice" (subscriptionLatestInvoice obj) : (Data.Aeson..=) "livemode" (subscriptionLivemode obj) : (Data.Aeson..=) "metadata" (subscriptionMetadata obj) : (Data.Aeson..=) "next_pending_invoice_item_invoice" (subscriptionNextPendingInvoiceItemInvoice obj) : (Data.Aeson..=) "object" (subscriptionObject obj) : (Data.Aeson..=) "pending_invoice_item_interval" (subscriptionPendingInvoiceItemInterval obj) : (Data.Aeson..=) "pending_setup_intent" (subscriptionPendingSetupIntent obj) : (Data.Aeson..=) "pending_update" (subscriptionPendingUpdate obj) : (Data.Aeson..=) "plan" (subscriptionPlan obj) : (Data.Aeson..=) "quantity" (subscriptionQuantity obj) : (Data.Aeson..=) "schedule" (subscriptionSchedule obj) : (Data.Aeson..=) "start_date" (subscriptionStartDate obj) : (Data.Aeson..=) "status" (subscriptionStatus obj) : (Data.Aeson..=) "tax_percent" (subscriptionTaxPercent obj) : (Data.Aeson..=) "trial_end" (subscriptionTrialEnd obj) : (Data.Aeson..=) "trial_start" (subscriptionTrialStart obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "application_fee_percent" (subscriptionApplicationFeePercent obj) GHC.Base.<> ((Data.Aeson..=) "billing_cycle_anchor" (subscriptionBillingCycleAnchor obj) GHC.Base.<> ((Data.Aeson..=) "billing_thresholds" (subscriptionBillingThresholds obj) GHC.Base.<> ((Data.Aeson..=) "cancel_at" (subscriptionCancelAt obj) GHC.Base.<> ((Data.Aeson..=) "cancel_at_period_end" (subscriptionCancelAtPeriodEnd obj) GHC.Base.<> ((Data.Aeson..=) "canceled_at" (subscriptionCanceledAt obj) GHC.Base.<> ((Data.Aeson..=) "collection_method" (subscriptionCollectionMethod obj) GHC.Base.<> ((Data.Aeson..=) "created" (subscriptionCreated obj) GHC.Base.<> ((Data.Aeson..=) "current_period_end" (subscriptionCurrentPeriodEnd obj) GHC.Base.<> ((Data.Aeson..=) "current_period_start" (subscriptionCurrentPeriodStart obj) GHC.Base.<> ((Data.Aeson..=) "customer" (subscriptionCustomer obj) GHC.Base.<> ((Data.Aeson..=) "days_until_due" (subscriptionDaysUntilDue obj) GHC.Base.<> ((Data.Aeson..=) "default_payment_method" (subscriptionDefaultPaymentMethod obj) GHC.Base.<> ((Data.Aeson..=) "default_source" (subscriptionDefaultSource obj) GHC.Base.<> ((Data.Aeson..=) "default_tax_rates" (subscriptionDefaultTaxRates obj) GHC.Base.<> ((Data.Aeson..=) "discount" (subscriptionDiscount obj) GHC.Base.<> ((Data.Aeson..=) "ended_at" (subscriptionEndedAt obj) GHC.Base.<> ((Data.Aeson..=) "id" (subscriptionId obj) GHC.Base.<> ((Data.Aeson..=) "items" (subscriptionItems obj) GHC.Base.<> ((Data.Aeson..=) "latest_invoice" (subscriptionLatestInvoice obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (subscriptionLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (subscriptionMetadata obj) GHC.Base.<> ((Data.Aeson..=) "next_pending_invoice_item_invoice" (subscriptionNextPendingInvoiceItemInvoice obj) GHC.Base.<> ((Data.Aeson..=) "object" (subscriptionObject obj) GHC.Base.<> ((Data.Aeson..=) "pending_invoice_item_interval" (subscriptionPendingInvoiceItemInterval obj) GHC.Base.<> ((Data.Aeson..=) "pending_setup_intent" (subscriptionPendingSetupIntent obj) GHC.Base.<> ((Data.Aeson..=) "pending_update" (subscriptionPendingUpdate obj) GHC.Base.<> ((Data.Aeson..=) "plan" (subscriptionPlan obj) GHC.Base.<> ((Data.Aeson..=) "quantity" (subscriptionQuantity obj) GHC.Base.<> ((Data.Aeson..=) "schedule" (subscriptionSchedule obj) GHC.Base.<> ((Data.Aeson..=) "start_date" (subscriptionStartDate obj) GHC.Base.<> ((Data.Aeson..=) "status" (subscriptionStatus obj) GHC.Base.<> ((Data.Aeson..=) "tax_percent" (subscriptionTaxPercent obj) GHC.Base.<> ((Data.Aeson..=) "trial_end" (subscriptionTrialEnd obj) GHC.Base.<> (Data.Aeson..=) "trial_start" (subscriptionTrialStart obj)))))))))))))))))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Subscription
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Subscription" (\obj -> ((((((((((((((((((((((((((((((((((GHC.Base.pure Subscription GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application_fee_percent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "billing_cycle_anchor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_thresholds")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cancel_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "cancel_at_period_end")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "canceled_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "collection_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "current_period_end")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "current_period_start")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "days_until_due")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_source")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_tax_rates")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "discount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ended_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "items")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "latest_invoice")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "next_pending_invoice_item_invoice")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "pending_invoice_item_interval")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "pending_setup_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "pending_update")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "plan")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "quantity")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "schedule")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "start_date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_percent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_end")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_start"))
-- | Defines the data type for the schema subscriptionBilling_thresholds\'
-- 
-- Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
data SubscriptionBillingThresholds' = SubscriptionBillingThresholds' {
  -- | amount_gte: Monetary threshold that triggers the subscription to create an invoice
  subscriptionBillingThresholds'AmountGte :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | reset_billing_cycle_anchor: Indicates if the \`billing_cycle_anchor\` should be reset when a threshold is reached. If true, \`billing_cycle_anchor\` will be updated to the date\/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be \`true\` if the subscription contains items with plans that have \`aggregate_usage=last_ever\`.
  , subscriptionBillingThresholds'ResetBillingCycleAnchor :: (GHC.Maybe.Maybe GHC.Types.Bool)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionBillingThresholds'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount_gte" (subscriptionBillingThresholds'AmountGte obj) : (Data.Aeson..=) "reset_billing_cycle_anchor" (subscriptionBillingThresholds'ResetBillingCycleAnchor obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount_gte" (subscriptionBillingThresholds'AmountGte obj) GHC.Base.<> (Data.Aeson..=) "reset_billing_cycle_anchor" (subscriptionBillingThresholds'ResetBillingCycleAnchor obj))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionBillingThresholds'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionBillingThresholds'" (\obj -> (GHC.Base.pure SubscriptionBillingThresholds' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_gte")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "reset_billing_cycle_anchor"))
-- | Defines the enum schema subscriptionCollection_method\'
-- 
-- Either \`charge_automatically\`, or \`send_invoice\`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.
data SubscriptionCollectionMethod'
    = SubscriptionCollectionMethod'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionCollectionMethod'EnumTyped GHC.Base.String
    | SubscriptionCollectionMethod'EnumStringChargeAutomatically
    | SubscriptionCollectionMethod'EnumStringSendInvoice
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionCollectionMethod'
    where toJSON (SubscriptionCollectionMethod'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionCollectionMethod'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionCollectionMethod'EnumStringChargeAutomatically) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge_automatically"
          toJSON (SubscriptionCollectionMethod'EnumStringSendInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "send_invoice"
instance Data.Aeson.FromJSON SubscriptionCollectionMethod'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge_automatically")
                                          then SubscriptionCollectionMethod'EnumStringChargeAutomatically
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "send_invoice")
                                                then SubscriptionCollectionMethod'EnumStringSendInvoice
                                                else SubscriptionCollectionMethod'EnumOther val)
-- | Define the one-of schema subscriptionCustomer\'
-- 
-- ID of the customer who owns the subscription.
data SubscriptionCustomer'Variants
    = SubscriptionCustomer'Customer Customer
    | SubscriptionCustomer'DeletedCustomer DeletedCustomer
    | SubscriptionCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema subscriptionDefault_payment_method\'
-- 
-- ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. If not set, invoices will use the default payment method in the customer\'s invoice settings.
data SubscriptionDefaultPaymentMethod'Variants
    = SubscriptionDefaultPaymentMethod'PaymentMethod PaymentMethod
    | SubscriptionDefaultPaymentMethod'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionDefaultPaymentMethod'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionDefaultPaymentMethod'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema subscriptionDefault_source\'
-- 
-- ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If not set, defaults to the customer\'s default source.
data SubscriptionDefaultSource'Variants
    = SubscriptionDefaultSource'AlipayAccount AlipayAccount
    | SubscriptionDefaultSource'BankAccount BankAccount
    | SubscriptionDefaultSource'BitcoinReceiver BitcoinReceiver
    | SubscriptionDefaultSource'Card Card
    | SubscriptionDefaultSource'Source Source
    | SubscriptionDefaultSource'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionDefaultSource'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionDefaultSource'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema subscriptionDiscount\'
-- 
-- Describes the current discount applied to this subscription, if there is one. When billing, a discount applied to a subscription overrides a discount applied on a customer-wide basis.
data SubscriptionDiscount' = SubscriptionDiscount' {
  -- | coupon: A coupon contains information about a percent-off or amount-off discount you
  -- might want to apply to a customer. Coupons may be applied to [invoices](https:\/\/stripe.com\/docs\/api\#invoices) or
  -- [orders](https:\/\/stripe.com\/docs\/api\#create_order-coupon). Coupons do not work with conventional one-off [charges](https:\/\/stripe.com\/docs\/api\#create_charge).
  subscriptionDiscount'Coupon :: (GHC.Maybe.Maybe Coupon)
  -- | customer: The ID of the customer associated with this discount.
  , subscriptionDiscount'Customer :: (GHC.Maybe.Maybe SubscriptionDiscount'Customer'Variants)
  -- | end: If the coupon has a duration of \`repeating\`, the date that this discount will end. If the coupon has a duration of \`once\` or \`forever\`, this attribute will be null.
  , subscriptionDiscount'End :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , subscriptionDiscount'Object :: (GHC.Maybe.Maybe SubscriptionDiscount'Object')
  -- | start: Date that the coupon was applied.
  , subscriptionDiscount'Start :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | subscription: The subscription that this coupon is applied to, if it is applied to a particular subscription.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , subscriptionDiscount'Subscription :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionDiscount'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "coupon" (subscriptionDiscount'Coupon obj) : (Data.Aeson..=) "customer" (subscriptionDiscount'Customer obj) : (Data.Aeson..=) "end" (subscriptionDiscount'End obj) : (Data.Aeson..=) "object" (subscriptionDiscount'Object obj) : (Data.Aeson..=) "start" (subscriptionDiscount'Start obj) : (Data.Aeson..=) "subscription" (subscriptionDiscount'Subscription obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "coupon" (subscriptionDiscount'Coupon obj) GHC.Base.<> ((Data.Aeson..=) "customer" (subscriptionDiscount'Customer obj) GHC.Base.<> ((Data.Aeson..=) "end" (subscriptionDiscount'End obj) GHC.Base.<> ((Data.Aeson..=) "object" (subscriptionDiscount'Object obj) GHC.Base.<> ((Data.Aeson..=) "start" (subscriptionDiscount'Start obj) GHC.Base.<> (Data.Aeson..=) "subscription" (subscriptionDiscount'Subscription obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionDiscount'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionDiscount'" (\obj -> (((((GHC.Base.pure SubscriptionDiscount' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "coupon")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "end")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "start")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription"))
-- | Define the one-of schema subscriptionDiscount\'Customer\'
-- 
-- The ID of the customer associated with this discount.
data SubscriptionDiscount'Customer'Variants
    = SubscriptionDiscount'Customer'Customer Customer
    | SubscriptionDiscount'Customer'DeletedCustomer DeletedCustomer
    | SubscriptionDiscount'Customer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionDiscount'Customer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionDiscount'Customer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema subscriptionDiscount\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data SubscriptionDiscount'Object'
    = SubscriptionDiscount'Object'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionDiscount'Object'EnumTyped GHC.Base.String
    | SubscriptionDiscount'Object'EnumStringDiscount
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionDiscount'Object'
    where toJSON (SubscriptionDiscount'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionDiscount'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionDiscount'Object'EnumStringDiscount) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount"
instance Data.Aeson.FromJSON SubscriptionDiscount'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "discount")
                                          then SubscriptionDiscount'Object'EnumStringDiscount
                                          else SubscriptionDiscount'Object'EnumOther val)
-- | Defines the data type for the schema subscriptionItems\'
-- 
-- List of subscription items, each with an attached plan.
data SubscriptionItems' = SubscriptionItems' {
  -- | data: Details about each object.
  subscriptionItems'Data :: ([] SubscriptionItem)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , subscriptionItems'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , subscriptionItems'Object :: SubscriptionItems'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , subscriptionItems'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionItems'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (subscriptionItems'Data obj) : (Data.Aeson..=) "has_more" (subscriptionItems'HasMore obj) : (Data.Aeson..=) "object" (subscriptionItems'Object obj) : (Data.Aeson..=) "url" (subscriptionItems'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (subscriptionItems'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (subscriptionItems'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (subscriptionItems'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (subscriptionItems'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionItems'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionItems'" (\obj -> (((GHC.Base.pure SubscriptionItems' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema subscriptionItems\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data SubscriptionItems'Object'
    = SubscriptionItems'Object'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionItems'Object'EnumTyped GHC.Base.String
    | SubscriptionItems'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionItems'Object'
    where toJSON (SubscriptionItems'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionItems'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionItems'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON SubscriptionItems'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then SubscriptionItems'Object'EnumStringList
                                          else SubscriptionItems'Object'EnumOther val)
-- | Define the one-of schema subscriptionLatest_invoice\'
-- 
-- The most recent invoice this subscription has generated.
data SubscriptionLatestInvoice'Variants
    = SubscriptionLatestInvoice'Invoice Invoice
    | SubscriptionLatestInvoice'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionLatestInvoice'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionLatestInvoice'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema subscriptionMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data SubscriptionMetadata' = SubscriptionMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionMetadata'" (\obj -> GHC.Base.pure SubscriptionMetadata')
-- | Defines the enum schema subscriptionObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data SubscriptionObject'
    = SubscriptionObject'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionObject'EnumTyped GHC.Base.String
    | SubscriptionObject'EnumStringSubscription
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionObject'
    where toJSON (SubscriptionObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionObject'EnumStringSubscription) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription"
instance Data.Aeson.FromJSON SubscriptionObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription")
                                          then SubscriptionObject'EnumStringSubscription
                                          else SubscriptionObject'EnumOther val)
-- | Defines the data type for the schema subscriptionPending_invoice_item_interval\'
-- 
-- Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https:\\\/\\\/stripe.com\\\/docs\\\/api\\\#create_invoice) for the given subscription at the specified interval.
data SubscriptionPendingInvoiceItemInterval' = SubscriptionPendingInvoiceItemInterval' {
  -- | interval: Specifies invoicing frequency. Either \`day\`, \`week\`, \`month\` or \`year\`.
  subscriptionPendingInvoiceItemInterval'Interval :: (GHC.Maybe.Maybe SubscriptionPendingInvoiceItemInterval'Interval')
  -- | interval_count: The number of intervals between invoices. For example, \`interval=month\` and \`interval_count=3\` bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks).
  , subscriptionPendingInvoiceItemInterval'IntervalCount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPendingInvoiceItemInterval'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "interval" (subscriptionPendingInvoiceItemInterval'Interval obj) : (Data.Aeson..=) "interval_count" (subscriptionPendingInvoiceItemInterval'IntervalCount obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "interval" (subscriptionPendingInvoiceItemInterval'Interval obj) GHC.Base.<> (Data.Aeson..=) "interval_count" (subscriptionPendingInvoiceItemInterval'IntervalCount obj))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionPendingInvoiceItemInterval'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionPendingInvoiceItemInterval'" (\obj -> (GHC.Base.pure SubscriptionPendingInvoiceItemInterval' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval_count"))
-- | Defines the enum schema subscriptionPending_invoice_item_interval\'Interval\'
-- 
-- Specifies invoicing frequency. Either \`day\`, \`week\`, \`month\` or \`year\`.
data SubscriptionPendingInvoiceItemInterval'Interval'
    = SubscriptionPendingInvoiceItemInterval'Interval'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionPendingInvoiceItemInterval'Interval'EnumTyped GHC.Base.String
    | SubscriptionPendingInvoiceItemInterval'Interval'EnumStringDay
    | SubscriptionPendingInvoiceItemInterval'Interval'EnumStringMonth
    | SubscriptionPendingInvoiceItemInterval'Interval'EnumStringWeek
    | SubscriptionPendingInvoiceItemInterval'Interval'EnumStringYear
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPendingInvoiceItemInterval'Interval'
    where toJSON (SubscriptionPendingInvoiceItemInterval'Interval'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPendingInvoiceItemInterval'Interval'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPendingInvoiceItemInterval'Interval'EnumStringDay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "day"
          toJSON (SubscriptionPendingInvoiceItemInterval'Interval'EnumStringMonth) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month"
          toJSON (SubscriptionPendingInvoiceItemInterval'Interval'EnumStringWeek) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "week"
          toJSON (SubscriptionPendingInvoiceItemInterval'Interval'EnumStringYear) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "year"
instance Data.Aeson.FromJSON SubscriptionPendingInvoiceItemInterval'Interval'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "day")
                                          then SubscriptionPendingInvoiceItemInterval'Interval'EnumStringDay
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month")
                                                then SubscriptionPendingInvoiceItemInterval'Interval'EnumStringMonth
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "week")
                                                      then SubscriptionPendingInvoiceItemInterval'Interval'EnumStringWeek
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "year")
                                                            then SubscriptionPendingInvoiceItemInterval'Interval'EnumStringYear
                                                            else SubscriptionPendingInvoiceItemInterval'Interval'EnumOther val)
-- | Define the one-of schema subscriptionPending_setup_intent\'
-- 
-- You can use this [SetupIntent](https:\/\/stripe.com\/docs\/api\/setup_intents) to collect user authentication when creating a subscription without immediate payment or updating a subscription\'s payment method, allowing you to optimize for off-session payments. Learn more in the [SCA Migration Guide](https:\/\/stripe.com\/docs\/billing\/migration\/strong-customer-authentication\#scenario-2).
data SubscriptionPendingSetupIntent'Variants
    = SubscriptionPendingSetupIntent'SetupIntent SetupIntent
    | SubscriptionPendingSetupIntent'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionPendingSetupIntent'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionPendingSetupIntent'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema subscriptionPending_update\'
-- 
-- If specified, [pending updates](https:\\\/\\\/stripe.com\\\/docs\\\/billing\\\/subscriptions\\\/pending-updates) that will be applied to the subscription once the \\\`latest_invoice\\\` has been paid.
data SubscriptionPendingUpdate' = SubscriptionPendingUpdate' {
  -- | billing_cycle_anchor: If the update is applied, determines the date of the first full invoice, and, for plans with \`month\` or \`year\` intervals, the day of the month for subsequent invoices.
  subscriptionPendingUpdate'BillingCycleAnchor :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | expires_at: The point after which the changes reflected by this update will be discarded and no longer applied.
  , subscriptionPendingUpdate'ExpiresAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | subscription_items: List of subscription items, each with an attached plan, that will be set if the update is applied.
  , subscriptionPendingUpdate'SubscriptionItems :: (GHC.Maybe.Maybe ([] SubscriptionItem))
  -- | trial_end: Unix timestamp representing the end of the trial period the customer will get before being charged for the first time, if the update is applied.
  , subscriptionPendingUpdate'TrialEnd :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | trial_from_plan: Indicates if a plan\'s \`trial_period_days\` should be applied to the subscription. Setting \`trial_end\` per subscription is preferred, and this defaults to \`false\`. Setting this flag to \`true\` together with \`trial_end\` is not allowed.
  , subscriptionPendingUpdate'TrialFromPlan :: (GHC.Maybe.Maybe GHC.Types.Bool)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPendingUpdate'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_cycle_anchor" (subscriptionPendingUpdate'BillingCycleAnchor obj) : (Data.Aeson..=) "expires_at" (subscriptionPendingUpdate'ExpiresAt obj) : (Data.Aeson..=) "subscription_items" (subscriptionPendingUpdate'SubscriptionItems obj) : (Data.Aeson..=) "trial_end" (subscriptionPendingUpdate'TrialEnd obj) : (Data.Aeson..=) "trial_from_plan" (subscriptionPendingUpdate'TrialFromPlan obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_cycle_anchor" (subscriptionPendingUpdate'BillingCycleAnchor obj) GHC.Base.<> ((Data.Aeson..=) "expires_at" (subscriptionPendingUpdate'ExpiresAt obj) GHC.Base.<> ((Data.Aeson..=) "subscription_items" (subscriptionPendingUpdate'SubscriptionItems obj) GHC.Base.<> ((Data.Aeson..=) "trial_end" (subscriptionPendingUpdate'TrialEnd obj) GHC.Base.<> (Data.Aeson..=) "trial_from_plan" (subscriptionPendingUpdate'TrialFromPlan obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionPendingUpdate'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionPendingUpdate'" (\obj -> ((((GHC.Base.pure SubscriptionPendingUpdate' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_cycle_anchor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "expires_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription_items")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_end")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_from_plan"))
-- | Defines the data type for the schema subscriptionPlan\'
-- 
-- Hash describing the plan the customer is subscribed to. Only set if the subscription contains a single plan.
data SubscriptionPlan' = SubscriptionPlan' {
  -- | active: Whether the plan is currently available for new subscriptions.
  subscriptionPlan'Active :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | aggregate_usage: Specifies a usage aggregation strategy for plans of \`usage_type=metered\`. Allowed values are \`sum\` for summing up all usage during a period, \`last_during_period\` for using the last usage record reported within a period, \`last_ever\` for using the last usage record ever (across period bounds) or \`max\` which uses the usage record with the maximum reported usage during a period. Defaults to \`sum\`.
  , subscriptionPlan'AggregateUsage :: (GHC.Maybe.Maybe SubscriptionPlan'AggregateUsage')
  -- | amount: The amount in %s to be charged on the interval specified.
  , subscriptionPlan'Amount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | amount_decimal: Same as \`amount\`, but contains a decimal value with at most 12 decimal places.
  , subscriptionPlan'AmountDecimal :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | billing_scheme: Describes how to compute the price per period. Either \`per_unit\` or \`tiered\`. \`per_unit\` indicates that the fixed amount (specified in \`amount\`) will be charged per unit in \`quantity\` (for plans with \`usage_type=licensed\`), or per unit of total usage (for plans with \`usage_type=metered\`). \`tiered\` indicates that the unit pricing will be computed using a tiering strategy as defined using the \`tiers\` and \`tiers_mode\` attributes.
  , subscriptionPlan'BillingScheme :: (GHC.Maybe.Maybe SubscriptionPlan'BillingScheme')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , subscriptionPlan'Created :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | 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).
  , subscriptionPlan'Currency :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , subscriptionPlan'Id :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | interval: The frequency at which a subscription is billed. One of \`day\`, \`week\`, \`month\` or \`year\`.
  , subscriptionPlan'Interval :: (GHC.Maybe.Maybe SubscriptionPlan'Interval')
  -- | interval_count: The number of intervals (specified in the \`interval\` attribute) between subscription billings. For example, \`interval=month\` and \`interval_count=3\` bills every 3 months.
  , subscriptionPlan'IntervalCount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , subscriptionPlan'Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool)
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , subscriptionPlan'Metadata :: (GHC.Maybe.Maybe SubscriptionPlan'Metadata')
  -- | nickname: A brief description of the plan, hidden from customers.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , subscriptionPlan'Nickname :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , subscriptionPlan'Object :: (GHC.Maybe.Maybe SubscriptionPlan'Object')
  -- | product: The product whose pricing this plan determines.
  , subscriptionPlan'Product :: (GHC.Maybe.Maybe SubscriptionPlan'Product'Variants)
  -- | tiers: Each element represents a pricing tier. This parameter requires \`billing_scheme\` to be set to \`tiered\`. See also the documentation for \`billing_scheme\`.
  , subscriptionPlan'Tiers :: (GHC.Maybe.Maybe ([] PlanTier))
  -- | tiers_mode: Defines if the tiering price should be \`graduated\` or \`volume\` based. In \`volume\`-based tiering, the maximum quantity within a period determines the per unit price. In \`graduated\` tiering, pricing can change as the quantity grows.
  , subscriptionPlan'TiersMode :: (GHC.Maybe.Maybe SubscriptionPlan'TiersMode')
  -- | transform_usage: Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with \`tiers\`.
  , subscriptionPlan'TransformUsage :: (GHC.Maybe.Maybe SubscriptionPlan'TransformUsage')
  -- | trial_period_days: Default number of trial days when subscribing a customer to this plan using [\`trial_from_plan=true\`](https:\/\/stripe.com\/docs\/api\#create_subscription-trial_from_plan).
  , subscriptionPlan'TrialPeriodDays :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | usage_type: Configures how the quantity per period should be determined. Can be either \`metered\` or \`licensed\`. \`licensed\` automatically bills the \`quantity\` set when adding it to a subscription. \`metered\` aggregates the total usage based on usage records. Defaults to \`licensed\`.
  , subscriptionPlan'UsageType :: (GHC.Maybe.Maybe SubscriptionPlan'UsageType')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPlan'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "active" (subscriptionPlan'Active obj) : (Data.Aeson..=) "aggregate_usage" (subscriptionPlan'AggregateUsage obj) : (Data.Aeson..=) "amount" (subscriptionPlan'Amount obj) : (Data.Aeson..=) "amount_decimal" (subscriptionPlan'AmountDecimal obj) : (Data.Aeson..=) "billing_scheme" (subscriptionPlan'BillingScheme obj) : (Data.Aeson..=) "created" (subscriptionPlan'Created obj) : (Data.Aeson..=) "currency" (subscriptionPlan'Currency obj) : (Data.Aeson..=) "id" (subscriptionPlan'Id obj) : (Data.Aeson..=) "interval" (subscriptionPlan'Interval obj) : (Data.Aeson..=) "interval_count" (subscriptionPlan'IntervalCount obj) : (Data.Aeson..=) "livemode" (subscriptionPlan'Livemode obj) : (Data.Aeson..=) "metadata" (subscriptionPlan'Metadata obj) : (Data.Aeson..=) "nickname" (subscriptionPlan'Nickname obj) : (Data.Aeson..=) "object" (subscriptionPlan'Object obj) : (Data.Aeson..=) "product" (subscriptionPlan'Product obj) : (Data.Aeson..=) "tiers" (subscriptionPlan'Tiers obj) : (Data.Aeson..=) "tiers_mode" (subscriptionPlan'TiersMode obj) : (Data.Aeson..=) "transform_usage" (subscriptionPlan'TransformUsage obj) : (Data.Aeson..=) "trial_period_days" (subscriptionPlan'TrialPeriodDays obj) : (Data.Aeson..=) "usage_type" (subscriptionPlan'UsageType obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "active" (subscriptionPlan'Active obj) GHC.Base.<> ((Data.Aeson..=) "aggregate_usage" (subscriptionPlan'AggregateUsage obj) GHC.Base.<> ((Data.Aeson..=) "amount" (subscriptionPlan'Amount obj) GHC.Base.<> ((Data.Aeson..=) "amount_decimal" (subscriptionPlan'AmountDecimal obj) GHC.Base.<> ((Data.Aeson..=) "billing_scheme" (subscriptionPlan'BillingScheme obj) GHC.Base.<> ((Data.Aeson..=) "created" (subscriptionPlan'Created obj) GHC.Base.<> ((Data.Aeson..=) "currency" (subscriptionPlan'Currency obj) GHC.Base.<> ((Data.Aeson..=) "id" (subscriptionPlan'Id obj) GHC.Base.<> ((Data.Aeson..=) "interval" (subscriptionPlan'Interval obj) GHC.Base.<> ((Data.Aeson..=) "interval_count" (subscriptionPlan'IntervalCount obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (subscriptionPlan'Livemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (subscriptionPlan'Metadata obj) GHC.Base.<> ((Data.Aeson..=) "nickname" (subscriptionPlan'Nickname obj) GHC.Base.<> ((Data.Aeson..=) "object" (subscriptionPlan'Object obj) GHC.Base.<> ((Data.Aeson..=) "product" (subscriptionPlan'Product obj) GHC.Base.<> ((Data.Aeson..=) "tiers" (subscriptionPlan'Tiers obj) GHC.Base.<> ((Data.Aeson..=) "tiers_mode" (subscriptionPlan'TiersMode obj) GHC.Base.<> ((Data.Aeson..=) "transform_usage" (subscriptionPlan'TransformUsage obj) GHC.Base.<> ((Data.Aeson..=) "trial_period_days" (subscriptionPlan'TrialPeriodDays obj) GHC.Base.<> (Data.Aeson..=) "usage_type" (subscriptionPlan'UsageType obj))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionPlan'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionPlan'" (\obj -> (((((((((((((((((((GHC.Base.pure SubscriptionPlan' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "active")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "aggregate_usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_decimal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_scheme")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval_count")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "nickname")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "product")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tiers")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tiers_mode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transform_usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_period_days")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage_type"))
-- | Defines the enum schema subscriptionPlan\'Aggregate_usage\'
-- 
-- Specifies a usage aggregation strategy for plans of \`usage_type=metered\`. Allowed values are \`sum\` for summing up all usage during a period, \`last_during_period\` for using the last usage record reported within a period, \`last_ever\` for using the last usage record ever (across period bounds) or \`max\` which uses the usage record with the maximum reported usage during a period. Defaults to \`sum\`.
data SubscriptionPlan'AggregateUsage'
    = SubscriptionPlan'AggregateUsage'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionPlan'AggregateUsage'EnumTyped GHC.Base.String
    | SubscriptionPlan'AggregateUsage'EnumStringLastDuringPeriod
    | SubscriptionPlan'AggregateUsage'EnumStringLastEver
    | SubscriptionPlan'AggregateUsage'EnumStringMax
    | SubscriptionPlan'AggregateUsage'EnumStringSum
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPlan'AggregateUsage'
    where toJSON (SubscriptionPlan'AggregateUsage'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'AggregateUsage'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'AggregateUsage'EnumStringLastDuringPeriod) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_during_period"
          toJSON (SubscriptionPlan'AggregateUsage'EnumStringLastEver) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_ever"
          toJSON (SubscriptionPlan'AggregateUsage'EnumStringMax) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "max"
          toJSON (SubscriptionPlan'AggregateUsage'EnumStringSum) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sum"
instance Data.Aeson.FromJSON SubscriptionPlan'AggregateUsage'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_during_period")
                                          then SubscriptionPlan'AggregateUsage'EnumStringLastDuringPeriod
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "last_ever")
                                                then SubscriptionPlan'AggregateUsage'EnumStringLastEver
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "max")
                                                      then SubscriptionPlan'AggregateUsage'EnumStringMax
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sum")
                                                            then SubscriptionPlan'AggregateUsage'EnumStringSum
                                                            else SubscriptionPlan'AggregateUsage'EnumOther val)
-- | Defines the enum schema subscriptionPlan\'Billing_scheme\'
-- 
-- Describes how to compute the price per period. Either \`per_unit\` or \`tiered\`. \`per_unit\` indicates that the fixed amount (specified in \`amount\`) will be charged per unit in \`quantity\` (for plans with \`usage_type=licensed\`), or per unit of total usage (for plans with \`usage_type=metered\`). \`tiered\` indicates that the unit pricing will be computed using a tiering strategy as defined using the \`tiers\` and \`tiers_mode\` attributes.
data SubscriptionPlan'BillingScheme'
    = SubscriptionPlan'BillingScheme'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionPlan'BillingScheme'EnumTyped GHC.Base.String
    | SubscriptionPlan'BillingScheme'EnumStringPerUnit
    | SubscriptionPlan'BillingScheme'EnumStringTiered
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPlan'BillingScheme'
    where toJSON (SubscriptionPlan'BillingScheme'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'BillingScheme'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'BillingScheme'EnumStringPerUnit) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "per_unit"
          toJSON (SubscriptionPlan'BillingScheme'EnumStringTiered) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tiered"
instance Data.Aeson.FromJSON SubscriptionPlan'BillingScheme'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "per_unit")
                                          then SubscriptionPlan'BillingScheme'EnumStringPerUnit
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tiered")
                                                then SubscriptionPlan'BillingScheme'EnumStringTiered
                                                else SubscriptionPlan'BillingScheme'EnumOther val)
-- | Defines the enum schema subscriptionPlan\'Interval\'
-- 
-- The frequency at which a subscription is billed. One of \`day\`, \`week\`, \`month\` or \`year\`.
data SubscriptionPlan'Interval'
    = SubscriptionPlan'Interval'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionPlan'Interval'EnumTyped GHC.Base.String
    | SubscriptionPlan'Interval'EnumStringDay
    | SubscriptionPlan'Interval'EnumStringMonth
    | SubscriptionPlan'Interval'EnumStringWeek
    | SubscriptionPlan'Interval'EnumStringYear
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPlan'Interval'
    where toJSON (SubscriptionPlan'Interval'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'Interval'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'Interval'EnumStringDay) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "day"
          toJSON (SubscriptionPlan'Interval'EnumStringMonth) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month"
          toJSON (SubscriptionPlan'Interval'EnumStringWeek) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "week"
          toJSON (SubscriptionPlan'Interval'EnumStringYear) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "year"
instance Data.Aeson.FromJSON SubscriptionPlan'Interval'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "day")
                                          then SubscriptionPlan'Interval'EnumStringDay
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "month")
                                                then SubscriptionPlan'Interval'EnumStringMonth
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "week")
                                                      then SubscriptionPlan'Interval'EnumStringWeek
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "year")
                                                            then SubscriptionPlan'Interval'EnumStringYear
                                                            else SubscriptionPlan'Interval'EnumOther val)
-- | Defines the data type for the schema subscriptionPlan\'Metadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data SubscriptionPlan'Metadata' = SubscriptionPlan'Metadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPlan'Metadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionPlan'Metadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionPlan'Metadata'" (\obj -> GHC.Base.pure SubscriptionPlan'Metadata')
-- | Defines the enum schema subscriptionPlan\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data SubscriptionPlan'Object'
    = SubscriptionPlan'Object'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionPlan'Object'EnumTyped GHC.Base.String
    | SubscriptionPlan'Object'EnumStringPlan
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPlan'Object'
    where toJSON (SubscriptionPlan'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'Object'EnumStringPlan) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plan"
instance Data.Aeson.FromJSON SubscriptionPlan'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "plan")
                                          then SubscriptionPlan'Object'EnumStringPlan
                                          else SubscriptionPlan'Object'EnumOther val)
-- | Define the one-of schema subscriptionPlan\'Product\'
-- 
-- The product whose pricing this plan determines.
data SubscriptionPlan'Product'Variants
    = SubscriptionPlan'Product'DeletedProduct DeletedProduct
    | SubscriptionPlan'Product'Product Product
    | SubscriptionPlan'Product'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionPlan'Product'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionPlan'Product'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema subscriptionPlan\'Tiers_mode\'
-- 
-- Defines if the tiering price should be \`graduated\` or \`volume\` based. In \`volume\`-based tiering, the maximum quantity within a period determines the per unit price. In \`graduated\` tiering, pricing can change as the quantity grows.
data SubscriptionPlan'TiersMode'
    = SubscriptionPlan'TiersMode'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionPlan'TiersMode'EnumTyped GHC.Base.String
    | SubscriptionPlan'TiersMode'EnumStringGraduated
    | SubscriptionPlan'TiersMode'EnumStringVolume
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPlan'TiersMode'
    where toJSON (SubscriptionPlan'TiersMode'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'TiersMode'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'TiersMode'EnumStringGraduated) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "graduated"
          toJSON (SubscriptionPlan'TiersMode'EnumStringVolume) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "volume"
instance Data.Aeson.FromJSON SubscriptionPlan'TiersMode'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "graduated")
                                          then SubscriptionPlan'TiersMode'EnumStringGraduated
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "volume")
                                                then SubscriptionPlan'TiersMode'EnumStringVolume
                                                else SubscriptionPlan'TiersMode'EnumOther val)
-- | Defines the data type for the schema subscriptionPlan\'Transform_usage\'
-- 
-- Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with \\\`tiers\\\`.
data SubscriptionPlan'TransformUsage' = SubscriptionPlan'TransformUsage' {
  -- | divide_by: Divide usage by this number.
  subscriptionPlan'TransformUsage'DivideBy :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | round: After division, either round the result \`up\` or \`down\`.
  , subscriptionPlan'TransformUsage'Round :: (GHC.Maybe.Maybe SubscriptionPlan'TransformUsage'Round')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPlan'TransformUsage'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "divide_by" (subscriptionPlan'TransformUsage'DivideBy obj) : (Data.Aeson..=) "round" (subscriptionPlan'TransformUsage'Round obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "divide_by" (subscriptionPlan'TransformUsage'DivideBy obj) GHC.Base.<> (Data.Aeson..=) "round" (subscriptionPlan'TransformUsage'Round obj))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionPlan'TransformUsage'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionPlan'TransformUsage'" (\obj -> (GHC.Base.pure SubscriptionPlan'TransformUsage' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "divide_by")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "round"))
-- | Defines the enum schema subscriptionPlan\'Transform_usage\'Round\'
-- 
-- After division, either round the result \`up\` or \`down\`.
data SubscriptionPlan'TransformUsage'Round'
    = SubscriptionPlan'TransformUsage'Round'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionPlan'TransformUsage'Round'EnumTyped GHC.Base.String
    | SubscriptionPlan'TransformUsage'Round'EnumStringDown
    | SubscriptionPlan'TransformUsage'Round'EnumStringUp
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPlan'TransformUsage'Round'
    where toJSON (SubscriptionPlan'TransformUsage'Round'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'TransformUsage'Round'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'TransformUsage'Round'EnumStringDown) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "down"
          toJSON (SubscriptionPlan'TransformUsage'Round'EnumStringUp) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "up"
instance Data.Aeson.FromJSON SubscriptionPlan'TransformUsage'Round'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "down")
                                          then SubscriptionPlan'TransformUsage'Round'EnumStringDown
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "up")
                                                then SubscriptionPlan'TransformUsage'Round'EnumStringUp
                                                else SubscriptionPlan'TransformUsage'Round'EnumOther val)
-- | Defines the enum schema subscriptionPlan\'Usage_type\'
-- 
-- Configures how the quantity per period should be determined. Can be either \`metered\` or \`licensed\`. \`licensed\` automatically bills the \`quantity\` set when adding it to a subscription. \`metered\` aggregates the total usage based on usage records. Defaults to \`licensed\`.
data SubscriptionPlan'UsageType'
    = SubscriptionPlan'UsageType'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionPlan'UsageType'EnumTyped GHC.Base.String
    | SubscriptionPlan'UsageType'EnumStringLicensed
    | SubscriptionPlan'UsageType'EnumStringMetered
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionPlan'UsageType'
    where toJSON (SubscriptionPlan'UsageType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'UsageType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionPlan'UsageType'EnumStringLicensed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "licensed"
          toJSON (SubscriptionPlan'UsageType'EnumStringMetered) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metered"
instance Data.Aeson.FromJSON SubscriptionPlan'UsageType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "licensed")
                                          then SubscriptionPlan'UsageType'EnumStringLicensed
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "metered")
                                                then SubscriptionPlan'UsageType'EnumStringMetered
                                                else SubscriptionPlan'UsageType'EnumOther val)
-- | Define the one-of schema subscriptionSchedule\'
-- 
-- The schedule attached to the subscription
data SubscriptionSchedule'Variants
    = SubscriptionSchedule'SubscriptionSchedule SubscriptionSchedule
    | SubscriptionSchedule'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionSchedule'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionSchedule'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema subscriptionStatus\'
-- 
-- Possible values are \`incomplete\`, \`incomplete_expired\`, \`trialing\`, \`active\`, \`past_due\`, \`canceled\`, or \`unpaid\`. 
-- 
-- For \`collection_method=charge_automatically\` a subscription moves into \`incomplete\` if the initial payment attempt fails. A subscription in this state can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an \`active\` state. If the first invoice is not paid within 23 hours, the subscription transitions to \`incomplete_expired\`. This is a terminal state, the open invoice will be voided and no further invoices will be generated. 
-- 
-- A subscription that is currently in a trial period is \`trialing\` and moves to \`active\` when the trial period is over. 
-- 
-- If subscription \`collection_method=charge_automatically\` it becomes \`past_due\` when payment to renew it fails and \`canceled\` or \`unpaid\` (depending on your subscriptions settings) when Stripe has exhausted all payment retry attempts. 
-- 
-- If subscription \`collection_method=send_invoice\` it becomes \`past_due\` when its invoice is not paid by the due date, and \`canceled\` or \`unpaid\` if it is still not paid by an additional deadline after that. Note that when a subscription has a status of \`unpaid\`, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices.
data SubscriptionStatus'
    = SubscriptionStatus'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionStatus'EnumTyped GHC.Base.String
    | SubscriptionStatus'EnumStringActive
    | SubscriptionStatus'EnumStringCanceled
    | SubscriptionStatus'EnumStringIncomplete
    | SubscriptionStatus'EnumStringIncompleteExpired
    | SubscriptionStatus'EnumStringPastDue
    | SubscriptionStatus'EnumStringTrialing
    | SubscriptionStatus'EnumStringUnpaid
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionStatus'
    where toJSON (SubscriptionStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionStatus'EnumStringActive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active"
          toJSON (SubscriptionStatus'EnumStringCanceled) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled"
          toJSON (SubscriptionStatus'EnumStringIncomplete) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "incomplete"
          toJSON (SubscriptionStatus'EnumStringIncompleteExpired) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "incomplete_expired"
          toJSON (SubscriptionStatus'EnumStringPastDue) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "past_due"
          toJSON (SubscriptionStatus'EnumStringTrialing) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "trialing"
          toJSON (SubscriptionStatus'EnumStringUnpaid) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unpaid"
instance Data.Aeson.FromJSON SubscriptionStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active")
                                          then SubscriptionStatus'EnumStringActive
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled")
                                                then SubscriptionStatus'EnumStringCanceled
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "incomplete")
                                                      then SubscriptionStatus'EnumStringIncomplete
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "incomplete_expired")
                                                            then SubscriptionStatus'EnumStringIncompleteExpired
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "past_due")
                                                                  then SubscriptionStatus'EnumStringPastDue
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "trialing")
                                                                        then SubscriptionStatus'EnumStringTrialing
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unpaid")
                                                                              then SubscriptionStatus'EnumStringUnpaid
                                                                              else SubscriptionStatus'EnumOther val)
-- | Defines the data type for the schema subscription_item
-- 
-- Subscription items allow you to create customer subscriptions with more than
-- one plan, making it easy to represent complex billing relationships.
data SubscriptionItem = SubscriptionItem {
  -- | billing_thresholds: Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period
  subscriptionItemBillingThresholds :: (GHC.Maybe.Maybe SubscriptionItemBillingThresholds')
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , subscriptionItemCreated :: GHC.Integer.Type.Integer
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , subscriptionItemId :: GHC.Base.String
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , subscriptionItemMetadata :: SubscriptionItemMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , subscriptionItemObject :: SubscriptionItemObject'
  -- | plan: Plans define the base price, currency, and billing cycle for subscriptions.
  -- For example, you might have a \<currency>5\<\/currency>\/month plan
  -- that provides limited access to your products, and a
  -- \<currency>15\<\/currency>\/month plan that allows full access.
  -- 
  -- Related guide: [Managing Products and Plans](https:\/\/stripe.com\/docs\/billing\/subscriptions\/products-and-plans).
  , subscriptionItemPlan :: Plan
  -- | quantity: The [quantity](https:\/\/stripe.com\/docs\/subscriptions\/quantities) of the plan to which the customer should be subscribed.
  , subscriptionItemQuantity :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | subscription: The \`subscription\` this \`subscription_item\` belongs to.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , subscriptionItemSubscription :: GHC.Base.String
  -- | tax_rates: The tax rates which apply to this \`subscription_item\`. When set, the \`default_tax_rates\` on the subscription do not apply to this \`subscription_item\`.
  , subscriptionItemTaxRates :: (GHC.Maybe.Maybe ([] TaxRate))
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionItem
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_thresholds" (subscriptionItemBillingThresholds obj) : (Data.Aeson..=) "created" (subscriptionItemCreated obj) : (Data.Aeson..=) "id" (subscriptionItemId obj) : (Data.Aeson..=) "metadata" (subscriptionItemMetadata obj) : (Data.Aeson..=) "object" (subscriptionItemObject obj) : (Data.Aeson..=) "plan" (subscriptionItemPlan obj) : (Data.Aeson..=) "quantity" (subscriptionItemQuantity obj) : (Data.Aeson..=) "subscription" (subscriptionItemSubscription obj) : (Data.Aeson..=) "tax_rates" (subscriptionItemTaxRates obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_thresholds" (subscriptionItemBillingThresholds obj) GHC.Base.<> ((Data.Aeson..=) "created" (subscriptionItemCreated obj) GHC.Base.<> ((Data.Aeson..=) "id" (subscriptionItemId obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (subscriptionItemMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (subscriptionItemObject obj) GHC.Base.<> ((Data.Aeson..=) "plan" (subscriptionItemPlan obj) GHC.Base.<> ((Data.Aeson..=) "quantity" (subscriptionItemQuantity obj) GHC.Base.<> ((Data.Aeson..=) "subscription" (subscriptionItemSubscription obj) GHC.Base.<> (Data.Aeson..=) "tax_rates" (subscriptionItemTaxRates obj)))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionItem
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionItem" (\obj -> ((((((((GHC.Base.pure SubscriptionItem GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_thresholds")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "plan")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "quantity")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "subscription")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_rates"))
-- | Defines the data type for the schema subscription_itemBilling_thresholds\'
-- 
-- Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period
data SubscriptionItemBillingThresholds' = SubscriptionItemBillingThresholds' {
  -- | usage_gte: Usage threshold that triggers the subscription to create an invoice
  subscriptionItemBillingThresholds'UsageGte :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionItemBillingThresholds'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "usage_gte" (subscriptionItemBillingThresholds'UsageGte obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "usage_gte" (subscriptionItemBillingThresholds'UsageGte obj))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionItemBillingThresholds'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionItemBillingThresholds'" (\obj -> GHC.Base.pure SubscriptionItemBillingThresholds' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage_gte"))
-- | Defines the data type for the schema subscription_itemMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data SubscriptionItemMetadata' = SubscriptionItemMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionItemMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionItemMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionItemMetadata'" (\obj -> GHC.Base.pure SubscriptionItemMetadata')
-- | Defines the enum schema subscription_itemObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data SubscriptionItemObject'
    = SubscriptionItemObject'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionItemObject'EnumTyped GHC.Base.String
    | SubscriptionItemObject'EnumStringSubscriptionItem
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionItemObject'
    where toJSON (SubscriptionItemObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionItemObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionItemObject'EnumStringSubscriptionItem) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_item"
instance Data.Aeson.FromJSON SubscriptionItemObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_item")
                                          then SubscriptionItemObject'EnumStringSubscriptionItem
                                          else SubscriptionItemObject'EnumOther val)
-- | Defines the data type for the schema subscription_schedule
-- 
-- A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.
-- 
-- Related guide: [Subscription Schedules](https:\/\/stripe.com\/docs\/billing\/subscriptions\/subscription-schedules).
data SubscriptionSchedule = SubscriptionSchedule {
  -- | canceled_at: Time at which the subscription schedule was canceled. Measured in seconds since the Unix epoch.
  subscriptionScheduleCanceledAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | completed_at: Time at which the subscription schedule was completed. Measured in seconds since the Unix epoch.
  , subscriptionScheduleCompletedAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , subscriptionScheduleCreated :: GHC.Integer.Type.Integer
  -- | current_phase: Object representing the start and end dates for the current phase of the subscription schedule, if it is \`active\`.
  , subscriptionScheduleCurrentPhase :: (GHC.Maybe.Maybe SubscriptionScheduleCurrentPhase')
  -- | customer: ID of the customer who owns the subscription schedule.
  , subscriptionScheduleCustomer :: SubscriptionScheduleCustomer'Variants
  -- | default_settings: 
  , subscriptionScheduleDefaultSettings :: SubscriptionSchedulesResourceDefaultSettings
  -- | end_behavior: Behavior of the subscription schedule and underlying subscription when it ends.
  , subscriptionScheduleEndBehavior :: SubscriptionScheduleEndBehavior'
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , subscriptionScheduleId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , subscriptionScheduleLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , subscriptionScheduleMetadata :: (GHC.Maybe.Maybe SubscriptionScheduleMetadata')
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , subscriptionScheduleObject :: SubscriptionScheduleObject'
  -- | phases: Configuration for the subscription schedule\'s phases.
  , subscriptionSchedulePhases :: ([] SubscriptionSchedulePhaseConfiguration)
  -- | released_at: Time at which the subscription schedule was released. Measured in seconds since the Unix epoch.
  , subscriptionScheduleReleasedAt :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | released_subscription: ID of the subscription once managed by the subscription schedule (if it is released).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , subscriptionScheduleReleasedSubscription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: The present status of the subscription schedule. Possible values are \`not_started\`, \`active\`, \`completed\`, \`released\`, and \`canceled\`. You can read more about the different states in our [behavior guide](https:\/\/stripe.com\/docs\/billing\/subscriptions\/subscription-schedules).
  , subscriptionScheduleStatus :: SubscriptionScheduleStatus'
  -- | subscription: ID of the subscription managed by the subscription schedule.
  , subscriptionScheduleSubscription :: (GHC.Maybe.Maybe SubscriptionScheduleSubscription'Variants)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionSchedule
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "canceled_at" (subscriptionScheduleCanceledAt obj) : (Data.Aeson..=) "completed_at" (subscriptionScheduleCompletedAt obj) : (Data.Aeson..=) "created" (subscriptionScheduleCreated obj) : (Data.Aeson..=) "current_phase" (subscriptionScheduleCurrentPhase obj) : (Data.Aeson..=) "customer" (subscriptionScheduleCustomer obj) : (Data.Aeson..=) "default_settings" (subscriptionScheduleDefaultSettings obj) : (Data.Aeson..=) "end_behavior" (subscriptionScheduleEndBehavior obj) : (Data.Aeson..=) "id" (subscriptionScheduleId obj) : (Data.Aeson..=) "livemode" (subscriptionScheduleLivemode obj) : (Data.Aeson..=) "metadata" (subscriptionScheduleMetadata obj) : (Data.Aeson..=) "object" (subscriptionScheduleObject obj) : (Data.Aeson..=) "phases" (subscriptionSchedulePhases obj) : (Data.Aeson..=) "released_at" (subscriptionScheduleReleasedAt obj) : (Data.Aeson..=) "released_subscription" (subscriptionScheduleReleasedSubscription obj) : (Data.Aeson..=) "status" (subscriptionScheduleStatus obj) : (Data.Aeson..=) "subscription" (subscriptionScheduleSubscription obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "canceled_at" (subscriptionScheduleCanceledAt obj) GHC.Base.<> ((Data.Aeson..=) "completed_at" (subscriptionScheduleCompletedAt obj) GHC.Base.<> ((Data.Aeson..=) "created" (subscriptionScheduleCreated obj) GHC.Base.<> ((Data.Aeson..=) "current_phase" (subscriptionScheduleCurrentPhase obj) GHC.Base.<> ((Data.Aeson..=) "customer" (subscriptionScheduleCustomer obj) GHC.Base.<> ((Data.Aeson..=) "default_settings" (subscriptionScheduleDefaultSettings obj) GHC.Base.<> ((Data.Aeson..=) "end_behavior" (subscriptionScheduleEndBehavior obj) GHC.Base.<> ((Data.Aeson..=) "id" (subscriptionScheduleId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (subscriptionScheduleLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (subscriptionScheduleMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (subscriptionScheduleObject obj) GHC.Base.<> ((Data.Aeson..=) "phases" (subscriptionSchedulePhases obj) GHC.Base.<> ((Data.Aeson..=) "released_at" (subscriptionScheduleReleasedAt obj) GHC.Base.<> ((Data.Aeson..=) "released_subscription" (subscriptionScheduleReleasedSubscription obj) GHC.Base.<> ((Data.Aeson..=) "status" (subscriptionScheduleStatus obj) GHC.Base.<> (Data.Aeson..=) "subscription" (subscriptionScheduleSubscription obj))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionSchedule
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionSchedule" (\obj -> (((((((((((((((GHC.Base.pure SubscriptionSchedule GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "canceled_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "completed_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "current_phase")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "default_settings")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "end_behavior")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "phases")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "released_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "released_subscription")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription"))
-- | Defines the data type for the schema subscription_scheduleCurrent_phase\'
-- 
-- Object representing the start and end dates for the current phase of the subscription schedule, if it is \\\`active\\\`.
data SubscriptionScheduleCurrentPhase' = SubscriptionScheduleCurrentPhase' {
  -- | end_date: The end of this phase of the subscription schedule.
  subscriptionScheduleCurrentPhase'EndDate :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | start_date: The start of this phase of the subscription schedule.
  , subscriptionScheduleCurrentPhase'StartDate :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionScheduleCurrentPhase'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "end_date" (subscriptionScheduleCurrentPhase'EndDate obj) : (Data.Aeson..=) "start_date" (subscriptionScheduleCurrentPhase'StartDate obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "end_date" (subscriptionScheduleCurrentPhase'EndDate obj) GHC.Base.<> (Data.Aeson..=) "start_date" (subscriptionScheduleCurrentPhase'StartDate obj))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionScheduleCurrentPhase'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionScheduleCurrentPhase'" (\obj -> (GHC.Base.pure SubscriptionScheduleCurrentPhase' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "end_date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "start_date"))
-- | Define the one-of schema subscription_scheduleCustomer\'
-- 
-- ID of the customer who owns the subscription schedule.
data SubscriptionScheduleCustomer'Variants
    = SubscriptionScheduleCustomer'Customer Customer
    | SubscriptionScheduleCustomer'DeletedCustomer DeletedCustomer
    | SubscriptionScheduleCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionScheduleCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionScheduleCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema subscription_scheduleEnd_behavior\'
-- 
-- Behavior of the subscription schedule and underlying subscription when it ends.
data SubscriptionScheduleEndBehavior'
    = SubscriptionScheduleEndBehavior'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionScheduleEndBehavior'EnumTyped GHC.Base.String
    | SubscriptionScheduleEndBehavior'EnumStringCancel
    | SubscriptionScheduleEndBehavior'EnumStringNone
    | SubscriptionScheduleEndBehavior'EnumStringRelease
    | SubscriptionScheduleEndBehavior'EnumStringRenew
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionScheduleEndBehavior'
    where toJSON (SubscriptionScheduleEndBehavior'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionScheduleEndBehavior'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionScheduleEndBehavior'EnumStringCancel) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cancel"
          toJSON (SubscriptionScheduleEndBehavior'EnumStringNone) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "none"
          toJSON (SubscriptionScheduleEndBehavior'EnumStringRelease) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "release"
          toJSON (SubscriptionScheduleEndBehavior'EnumStringRenew) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "renew"
instance Data.Aeson.FromJSON SubscriptionScheduleEndBehavior'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "cancel")
                                          then SubscriptionScheduleEndBehavior'EnumStringCancel
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "none")
                                                then SubscriptionScheduleEndBehavior'EnumStringNone
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "release")
                                                      then SubscriptionScheduleEndBehavior'EnumStringRelease
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "renew")
                                                            then SubscriptionScheduleEndBehavior'EnumStringRenew
                                                            else SubscriptionScheduleEndBehavior'EnumOther val)
-- | Defines the data type for the schema subscription_scheduleMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data SubscriptionScheduleMetadata' = SubscriptionScheduleMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionScheduleMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionScheduleMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionScheduleMetadata'" (\obj -> GHC.Base.pure SubscriptionScheduleMetadata')
-- | Defines the enum schema subscription_scheduleObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data SubscriptionScheduleObject'
    = SubscriptionScheduleObject'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionScheduleObject'EnumTyped GHC.Base.String
    | SubscriptionScheduleObject'EnumStringSubscriptionSchedule
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionScheduleObject'
    where toJSON (SubscriptionScheduleObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionScheduleObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionScheduleObject'EnumStringSubscriptionSchedule) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_schedule"
instance Data.Aeson.FromJSON SubscriptionScheduleObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "subscription_schedule")
                                          then SubscriptionScheduleObject'EnumStringSubscriptionSchedule
                                          else SubscriptionScheduleObject'EnumOther val)
-- | Defines the enum schema subscription_scheduleStatus\'
-- 
-- The present status of the subscription schedule. Possible values are \`not_started\`, \`active\`, \`completed\`, \`released\`, and \`canceled\`. You can read more about the different states in our [behavior guide](https:\/\/stripe.com\/docs\/billing\/subscriptions\/subscription-schedules).
data SubscriptionScheduleStatus'
    = SubscriptionScheduleStatus'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionScheduleStatus'EnumTyped GHC.Base.String
    | SubscriptionScheduleStatus'EnumStringActive
    | SubscriptionScheduleStatus'EnumStringCanceled
    | SubscriptionScheduleStatus'EnumStringCompleted
    | SubscriptionScheduleStatus'EnumStringNotStarted
    | SubscriptionScheduleStatus'EnumStringReleased
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionScheduleStatus'
    where toJSON (SubscriptionScheduleStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionScheduleStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionScheduleStatus'EnumStringActive) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active"
          toJSON (SubscriptionScheduleStatus'EnumStringCanceled) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled"
          toJSON (SubscriptionScheduleStatus'EnumStringCompleted) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "completed"
          toJSON (SubscriptionScheduleStatus'EnumStringNotStarted) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "not_started"
          toJSON (SubscriptionScheduleStatus'EnumStringReleased) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "released"
instance Data.Aeson.FromJSON SubscriptionScheduleStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "active")
                                          then SubscriptionScheduleStatus'EnumStringActive
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled")
                                                then SubscriptionScheduleStatus'EnumStringCanceled
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "completed")
                                                      then SubscriptionScheduleStatus'EnumStringCompleted
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "not_started")
                                                            then SubscriptionScheduleStatus'EnumStringNotStarted
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "released")
                                                                  then SubscriptionScheduleStatus'EnumStringReleased
                                                                  else SubscriptionScheduleStatus'EnumOther val)
-- | Define the one-of schema subscription_scheduleSubscription\'
-- 
-- ID of the subscription managed by the subscription schedule.
data SubscriptionScheduleSubscription'Variants
    = SubscriptionScheduleSubscription'Subscription Subscription
    | SubscriptionScheduleSubscription'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionScheduleSubscription'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionScheduleSubscription'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema subscription_schedule_configuration_item
-- 
-- A phase item describes the plan and quantity of a phase.
data SubscriptionScheduleConfigurationItem = SubscriptionScheduleConfigurationItem {
  -- | billing_thresholds: Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period
  subscriptionScheduleConfigurationItemBillingThresholds :: (GHC.Maybe.Maybe SubscriptionScheduleConfigurationItemBillingThresholds')
  -- | plan: ID of the plan to which the customer should be subscribed.
  , subscriptionScheduleConfigurationItemPlan :: SubscriptionScheduleConfigurationItemPlan'Variants
  -- | quantity: Quantity of the plan to which the customer should be subscribed.
  , subscriptionScheduleConfigurationItemQuantity :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | tax_rates: The tax rates which apply to this \`phase_item\`. When set, the \`default_tax_rates\` on the phase do not apply to this \`phase_item\`.
  , subscriptionScheduleConfigurationItemTaxRates :: (GHC.Maybe.Maybe ([] TaxRate))
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionScheduleConfigurationItem
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_thresholds" (subscriptionScheduleConfigurationItemBillingThresholds obj) : (Data.Aeson..=) "plan" (subscriptionScheduleConfigurationItemPlan obj) : (Data.Aeson..=) "quantity" (subscriptionScheduleConfigurationItemQuantity obj) : (Data.Aeson..=) "tax_rates" (subscriptionScheduleConfigurationItemTaxRates obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_thresholds" (subscriptionScheduleConfigurationItemBillingThresholds obj) GHC.Base.<> ((Data.Aeson..=) "plan" (subscriptionScheduleConfigurationItemPlan obj) GHC.Base.<> ((Data.Aeson..=) "quantity" (subscriptionScheduleConfigurationItemQuantity obj) GHC.Base.<> (Data.Aeson..=) "tax_rates" (subscriptionScheduleConfigurationItemTaxRates obj))))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionScheduleConfigurationItem
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionScheduleConfigurationItem" (\obj -> (((GHC.Base.pure SubscriptionScheduleConfigurationItem GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_thresholds")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "plan")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "quantity")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_rates"))
-- | Defines the data type for the schema subscription_schedule_configuration_itemBilling_thresholds\'
-- 
-- Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period
data SubscriptionScheduleConfigurationItemBillingThresholds' = SubscriptionScheduleConfigurationItemBillingThresholds' {
  -- | usage_gte: Usage threshold that triggers the subscription to create an invoice
  subscriptionScheduleConfigurationItemBillingThresholds'UsageGte :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionScheduleConfigurationItemBillingThresholds'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "usage_gte" (subscriptionScheduleConfigurationItemBillingThresholds'UsageGte obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "usage_gte" (subscriptionScheduleConfigurationItemBillingThresholds'UsageGte obj))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionScheduleConfigurationItemBillingThresholds'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionScheduleConfigurationItemBillingThresholds'" (\obj -> GHC.Base.pure SubscriptionScheduleConfigurationItemBillingThresholds' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage_gte"))
-- | Define the one-of schema subscription_schedule_configuration_itemPlan\'
-- 
-- ID of the plan to which the customer should be subscribed.
data SubscriptionScheduleConfigurationItemPlan'Variants
    = SubscriptionScheduleConfigurationItemPlan'DeletedPlan DeletedPlan
    | SubscriptionScheduleConfigurationItemPlan'Plan Plan
    | SubscriptionScheduleConfigurationItemPlan'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionScheduleConfigurationItemPlan'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionScheduleConfigurationItemPlan'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema subscription_schedule_phase_configuration
-- 
-- A phase describes the plans, coupon, and trialing status of a subscription for a predefined time period.
data SubscriptionSchedulePhaseConfiguration = SubscriptionSchedulePhaseConfiguration {
  -- | application_fee_percent: A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice subtotal that will be transferred to the application owner\'s Stripe account during this phase of the schedule.
  subscriptionSchedulePhaseConfigurationApplicationFeePercent :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | billing_thresholds: Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
  , subscriptionSchedulePhaseConfigurationBillingThresholds :: (GHC.Maybe.Maybe SubscriptionSchedulePhaseConfigurationBillingThresholds')
  -- | collection_method: Either \`charge_automatically\`, or \`send_invoice\`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.
  , subscriptionSchedulePhaseConfigurationCollectionMethod :: (GHC.Maybe.Maybe SubscriptionSchedulePhaseConfigurationCollectionMethod')
  -- | coupon: ID of the coupon to use during this phase of the subscription schedule.
  , subscriptionSchedulePhaseConfigurationCoupon :: (GHC.Maybe.Maybe SubscriptionSchedulePhaseConfigurationCoupon'Variants)
  -- | default_payment_method: ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer\'s invoice settings.
  , subscriptionSchedulePhaseConfigurationDefaultPaymentMethod :: (GHC.Maybe.Maybe SubscriptionSchedulePhaseConfigurationDefaultPaymentMethod'Variants)
  -- | default_tax_rates: The default tax rates to apply to the subscription during this phase of the subscription schedule.
  , subscriptionSchedulePhaseConfigurationDefaultTaxRates :: (GHC.Maybe.Maybe ([] TaxRate))
  -- | end_date: The end of this phase of the subscription schedule.
  , subscriptionSchedulePhaseConfigurationEndDate :: GHC.Integer.Type.Integer
  -- | invoice_settings: The subscription schedule\'s default invoice settings.
  , subscriptionSchedulePhaseConfigurationInvoiceSettings :: (GHC.Maybe.Maybe SubscriptionSchedulePhaseConfigurationInvoiceSettings')
  -- | plans: Plans to subscribe during this phase of the subscription schedule.
  , subscriptionSchedulePhaseConfigurationPlans :: ([] SubscriptionScheduleConfigurationItem)
  -- | proration_behavior: Controls whether or not the subscription schedule will prorate when transitioning to this phase. Values are \`create_prorations\` and \`none\`.
  , subscriptionSchedulePhaseConfigurationProrationBehavior :: (GHC.Maybe.Maybe SubscriptionSchedulePhaseConfigurationProrationBehavior')
  -- | start_date: The start of this phase of the subscription schedule.
  , subscriptionSchedulePhaseConfigurationStartDate :: GHC.Integer.Type.Integer
  -- | tax_percent: If provided, each invoice created during this phase of the subscription schedule will apply the tax rate, increasing the amount billed to the customer.
  , subscriptionSchedulePhaseConfigurationTaxPercent :: (GHC.Maybe.Maybe GHC.Types.Double)
  -- | trial_end: When the trial ends within the phase.
  , subscriptionSchedulePhaseConfigurationTrialEnd :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionSchedulePhaseConfiguration
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "application_fee_percent" (subscriptionSchedulePhaseConfigurationApplicationFeePercent obj) : (Data.Aeson..=) "billing_thresholds" (subscriptionSchedulePhaseConfigurationBillingThresholds obj) : (Data.Aeson..=) "collection_method" (subscriptionSchedulePhaseConfigurationCollectionMethod obj) : (Data.Aeson..=) "coupon" (subscriptionSchedulePhaseConfigurationCoupon obj) : (Data.Aeson..=) "default_payment_method" (subscriptionSchedulePhaseConfigurationDefaultPaymentMethod obj) : (Data.Aeson..=) "default_tax_rates" (subscriptionSchedulePhaseConfigurationDefaultTaxRates obj) : (Data.Aeson..=) "end_date" (subscriptionSchedulePhaseConfigurationEndDate obj) : (Data.Aeson..=) "invoice_settings" (subscriptionSchedulePhaseConfigurationInvoiceSettings obj) : (Data.Aeson..=) "plans" (subscriptionSchedulePhaseConfigurationPlans obj) : (Data.Aeson..=) "proration_behavior" (subscriptionSchedulePhaseConfigurationProrationBehavior obj) : (Data.Aeson..=) "start_date" (subscriptionSchedulePhaseConfigurationStartDate obj) : (Data.Aeson..=) "tax_percent" (subscriptionSchedulePhaseConfigurationTaxPercent obj) : (Data.Aeson..=) "trial_end" (subscriptionSchedulePhaseConfigurationTrialEnd obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "application_fee_percent" (subscriptionSchedulePhaseConfigurationApplicationFeePercent obj) GHC.Base.<> ((Data.Aeson..=) "billing_thresholds" (subscriptionSchedulePhaseConfigurationBillingThresholds obj) GHC.Base.<> ((Data.Aeson..=) "collection_method" (subscriptionSchedulePhaseConfigurationCollectionMethod obj) GHC.Base.<> ((Data.Aeson..=) "coupon" (subscriptionSchedulePhaseConfigurationCoupon obj) GHC.Base.<> ((Data.Aeson..=) "default_payment_method" (subscriptionSchedulePhaseConfigurationDefaultPaymentMethod obj) GHC.Base.<> ((Data.Aeson..=) "default_tax_rates" (subscriptionSchedulePhaseConfigurationDefaultTaxRates obj) GHC.Base.<> ((Data.Aeson..=) "end_date" (subscriptionSchedulePhaseConfigurationEndDate obj) GHC.Base.<> ((Data.Aeson..=) "invoice_settings" (subscriptionSchedulePhaseConfigurationInvoiceSettings obj) GHC.Base.<> ((Data.Aeson..=) "plans" (subscriptionSchedulePhaseConfigurationPlans obj) GHC.Base.<> ((Data.Aeson..=) "proration_behavior" (subscriptionSchedulePhaseConfigurationProrationBehavior obj) GHC.Base.<> ((Data.Aeson..=) "start_date" (subscriptionSchedulePhaseConfigurationStartDate obj) GHC.Base.<> ((Data.Aeson..=) "tax_percent" (subscriptionSchedulePhaseConfigurationTaxPercent obj) GHC.Base.<> (Data.Aeson..=) "trial_end" (subscriptionSchedulePhaseConfigurationTrialEnd obj)))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionSchedulePhaseConfiguration
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionSchedulePhaseConfiguration" (\obj -> ((((((((((((GHC.Base.pure SubscriptionSchedulePhaseConfiguration GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "application_fee_percent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_thresholds")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "collection_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "coupon")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_tax_rates")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "end_date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice_settings")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "plans")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "proration_behavior")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "start_date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tax_percent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_end"))
-- | Defines the data type for the schema subscription_schedule_phase_configurationBilling_thresholds\'
-- 
-- Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
data SubscriptionSchedulePhaseConfigurationBillingThresholds' = SubscriptionSchedulePhaseConfigurationBillingThresholds' {
  -- | amount_gte: Monetary threshold that triggers the subscription to create an invoice
  subscriptionSchedulePhaseConfigurationBillingThresholds'AmountGte :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | reset_billing_cycle_anchor: Indicates if the \`billing_cycle_anchor\` should be reset when a threshold is reached. If true, \`billing_cycle_anchor\` will be updated to the date\/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be \`true\` if the subscription contains items with plans that have \`aggregate_usage=last_ever\`.
  , subscriptionSchedulePhaseConfigurationBillingThresholds'ResetBillingCycleAnchor :: (GHC.Maybe.Maybe GHC.Types.Bool)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionSchedulePhaseConfigurationBillingThresholds'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount_gte" (subscriptionSchedulePhaseConfigurationBillingThresholds'AmountGte obj) : (Data.Aeson..=) "reset_billing_cycle_anchor" (subscriptionSchedulePhaseConfigurationBillingThresholds'ResetBillingCycleAnchor obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount_gte" (subscriptionSchedulePhaseConfigurationBillingThresholds'AmountGte obj) GHC.Base.<> (Data.Aeson..=) "reset_billing_cycle_anchor" (subscriptionSchedulePhaseConfigurationBillingThresholds'ResetBillingCycleAnchor obj))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionSchedulePhaseConfigurationBillingThresholds'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionSchedulePhaseConfigurationBillingThresholds'" (\obj -> (GHC.Base.pure SubscriptionSchedulePhaseConfigurationBillingThresholds' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_gte")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "reset_billing_cycle_anchor"))
-- | Defines the enum schema subscription_schedule_phase_configurationCollection_method\'
-- 
-- Either \`charge_automatically\`, or \`send_invoice\`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.
data SubscriptionSchedulePhaseConfigurationCollectionMethod'
    = SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumTyped GHC.Base.String
    | SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumStringChargeAutomatically
    | SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumStringSendInvoice
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionSchedulePhaseConfigurationCollectionMethod'
    where toJSON (SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumStringChargeAutomatically) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge_automatically"
          toJSON (SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumStringSendInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "send_invoice"
instance Data.Aeson.FromJSON SubscriptionSchedulePhaseConfigurationCollectionMethod'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge_automatically")
                                          then SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumStringChargeAutomatically
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "send_invoice")
                                                then SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumStringSendInvoice
                                                else SubscriptionSchedulePhaseConfigurationCollectionMethod'EnumOther val)
-- | Define the one-of schema subscription_schedule_phase_configurationCoupon\'
-- 
-- ID of the coupon to use during this phase of the subscription schedule.
data SubscriptionSchedulePhaseConfigurationCoupon'Variants
    = SubscriptionSchedulePhaseConfigurationCoupon'Coupon Coupon
    | SubscriptionSchedulePhaseConfigurationCoupon'DeletedCoupon DeletedCoupon
    | SubscriptionSchedulePhaseConfigurationCoupon'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionSchedulePhaseConfigurationCoupon'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionSchedulePhaseConfigurationCoupon'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema subscription_schedule_phase_configurationDefault_payment_method\'
-- 
-- ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer\'s invoice settings.
data SubscriptionSchedulePhaseConfigurationDefaultPaymentMethod'Variants
    = SubscriptionSchedulePhaseConfigurationDefaultPaymentMethod'PaymentMethod PaymentMethod
    | SubscriptionSchedulePhaseConfigurationDefaultPaymentMethod'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionSchedulePhaseConfigurationDefaultPaymentMethod'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionSchedulePhaseConfigurationDefaultPaymentMethod'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema subscription_schedule_phase_configurationInvoice_settings\'
-- 
-- The subscription schedule\\\'s default invoice settings.
data SubscriptionSchedulePhaseConfigurationInvoiceSettings' = SubscriptionSchedulePhaseConfigurationInvoiceSettings' {
  -- | days_until_due: Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be \`null\` for subscription schedules where \`billing=charge_automatically\`.
  subscriptionSchedulePhaseConfigurationInvoiceSettings'DaysUntilDue :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionSchedulePhaseConfigurationInvoiceSettings'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "days_until_due" (subscriptionSchedulePhaseConfigurationInvoiceSettings'DaysUntilDue obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "days_until_due" (subscriptionSchedulePhaseConfigurationInvoiceSettings'DaysUntilDue obj))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionSchedulePhaseConfigurationInvoiceSettings'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionSchedulePhaseConfigurationInvoiceSettings'" (\obj -> GHC.Base.pure SubscriptionSchedulePhaseConfigurationInvoiceSettings' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "days_until_due"))
-- | Defines the enum schema subscription_schedule_phase_configurationProration_behavior\'
-- 
-- Controls whether or not the subscription schedule will prorate when transitioning to this phase. Values are \`create_prorations\` and \`none\`.
data SubscriptionSchedulePhaseConfigurationProrationBehavior'
    = SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumTyped GHC.Base.String
    | SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumStringAlwaysInvoice
    | SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumStringCreateProrations
    | SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumStringNone
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionSchedulePhaseConfigurationProrationBehavior'
    where toJSON (SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumStringAlwaysInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "always_invoice"
          toJSON (SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumStringCreateProrations) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "create_prorations"
          toJSON (SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumStringNone) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "none"
instance Data.Aeson.FromJSON SubscriptionSchedulePhaseConfigurationProrationBehavior'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "always_invoice")
                                          then SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumStringAlwaysInvoice
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "create_prorations")
                                                then SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumStringCreateProrations
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "none")
                                                      then SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumStringNone
                                                      else SubscriptionSchedulePhaseConfigurationProrationBehavior'EnumOther val)
-- | Defines the data type for the schema subscription_schedules_resource_default_settings
-- 
-- 
data SubscriptionSchedulesResourceDefaultSettings = SubscriptionSchedulesResourceDefaultSettings {
  -- | billing_thresholds: Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
  subscriptionSchedulesResourceDefaultSettingsBillingThresholds :: (GHC.Maybe.Maybe SubscriptionSchedulesResourceDefaultSettingsBillingThresholds')
  -- | collection_method: Either \`charge_automatically\`, or \`send_invoice\`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.
  , subscriptionSchedulesResourceDefaultSettingsCollectionMethod :: (GHC.Maybe.Maybe SubscriptionSchedulesResourceDefaultSettingsCollectionMethod')
  -- | default_payment_method: ID of the default payment method for the subscription schedule. If not set, invoices will use the default payment method in the customer\'s invoice settings.
  , subscriptionSchedulesResourceDefaultSettingsDefaultPaymentMethod :: (GHC.Maybe.Maybe SubscriptionSchedulesResourceDefaultSettingsDefaultPaymentMethod'Variants)
  -- | invoice_settings: The subscription schedule\'s default invoice settings.
  , subscriptionSchedulesResourceDefaultSettingsInvoiceSettings :: (GHC.Maybe.Maybe SubscriptionSchedulesResourceDefaultSettingsInvoiceSettings')
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionSchedulesResourceDefaultSettings
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_thresholds" (subscriptionSchedulesResourceDefaultSettingsBillingThresholds obj) : (Data.Aeson..=) "collection_method" (subscriptionSchedulesResourceDefaultSettingsCollectionMethod obj) : (Data.Aeson..=) "default_payment_method" (subscriptionSchedulesResourceDefaultSettingsDefaultPaymentMethod obj) : (Data.Aeson..=) "invoice_settings" (subscriptionSchedulesResourceDefaultSettingsInvoiceSettings obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_thresholds" (subscriptionSchedulesResourceDefaultSettingsBillingThresholds obj) GHC.Base.<> ((Data.Aeson..=) "collection_method" (subscriptionSchedulesResourceDefaultSettingsCollectionMethod obj) GHC.Base.<> ((Data.Aeson..=) "default_payment_method" (subscriptionSchedulesResourceDefaultSettingsDefaultPaymentMethod obj) GHC.Base.<> (Data.Aeson..=) "invoice_settings" (subscriptionSchedulesResourceDefaultSettingsInvoiceSettings obj))))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionSchedulesResourceDefaultSettings
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionSchedulesResourceDefaultSettings" (\obj -> (((GHC.Base.pure SubscriptionSchedulesResourceDefaultSettings GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_thresholds")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "collection_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "invoice_settings"))
-- | Defines the data type for the schema subscription_schedules_resource_default_settingsBilling_thresholds\'
-- 
-- Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
data SubscriptionSchedulesResourceDefaultSettingsBillingThresholds' = SubscriptionSchedulesResourceDefaultSettingsBillingThresholds' {
  -- | amount_gte: Monetary threshold that triggers the subscription to create an invoice
  subscriptionSchedulesResourceDefaultSettingsBillingThresholds'AmountGte :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | reset_billing_cycle_anchor: Indicates if the \`billing_cycle_anchor\` should be reset when a threshold is reached. If true, \`billing_cycle_anchor\` will be updated to the date\/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be \`true\` if the subscription contains items with plans that have \`aggregate_usage=last_ever\`.
  , subscriptionSchedulesResourceDefaultSettingsBillingThresholds'ResetBillingCycleAnchor :: (GHC.Maybe.Maybe GHC.Types.Bool)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionSchedulesResourceDefaultSettingsBillingThresholds'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount_gte" (subscriptionSchedulesResourceDefaultSettingsBillingThresholds'AmountGte obj) : (Data.Aeson..=) "reset_billing_cycle_anchor" (subscriptionSchedulesResourceDefaultSettingsBillingThresholds'ResetBillingCycleAnchor obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount_gte" (subscriptionSchedulesResourceDefaultSettingsBillingThresholds'AmountGte obj) GHC.Base.<> (Data.Aeson..=) "reset_billing_cycle_anchor" (subscriptionSchedulesResourceDefaultSettingsBillingThresholds'ResetBillingCycleAnchor obj))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionSchedulesResourceDefaultSettingsBillingThresholds'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionSchedulesResourceDefaultSettingsBillingThresholds'" (\obj -> (GHC.Base.pure SubscriptionSchedulesResourceDefaultSettingsBillingThresholds' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_gte")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "reset_billing_cycle_anchor"))
-- | Defines the enum schema subscription_schedules_resource_default_settingsCollection_method\'
-- 
-- Either \`charge_automatically\`, or \`send_invoice\`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.
data SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'
    = SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumOther Data.Aeson.Types.Internal.Value
    | SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumTyped GHC.Base.String
    | SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumStringChargeAutomatically
    | SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumStringSendInvoice
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'
    where toJSON (SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumStringChargeAutomatically) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge_automatically"
          toJSON (SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumStringSendInvoice) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "send_invoice"
instance Data.Aeson.FromJSON SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "charge_automatically")
                                          then SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumStringChargeAutomatically
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "send_invoice")
                                                then SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumStringSendInvoice
                                                else SubscriptionSchedulesResourceDefaultSettingsCollectionMethod'EnumOther val)
-- | Define the one-of schema subscription_schedules_resource_default_settingsDefault_payment_method\'
-- 
-- ID of the default payment method for the subscription schedule. If not set, invoices will use the default payment method in the customer\'s invoice settings.
data SubscriptionSchedulesResourceDefaultSettingsDefaultPaymentMethod'Variants
    = SubscriptionSchedulesResourceDefaultSettingsDefaultPaymentMethod'PaymentMethod PaymentMethod
    | SubscriptionSchedulesResourceDefaultSettingsDefaultPaymentMethod'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON SubscriptionSchedulesResourceDefaultSettingsDefaultPaymentMethod'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON SubscriptionSchedulesResourceDefaultSettingsDefaultPaymentMethod'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema subscription_schedules_resource_default_settingsInvoice_settings\'
-- 
-- The subscription schedule\\\'s default invoice settings.
data SubscriptionSchedulesResourceDefaultSettingsInvoiceSettings' = SubscriptionSchedulesResourceDefaultSettingsInvoiceSettings' {
  -- | days_until_due: Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be \`null\` for subscription schedules where \`billing=charge_automatically\`.
  subscriptionSchedulesResourceDefaultSettingsInvoiceSettings'DaysUntilDue :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionSchedulesResourceDefaultSettingsInvoiceSettings'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "days_until_due" (subscriptionSchedulesResourceDefaultSettingsInvoiceSettings'DaysUntilDue obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "days_until_due" (subscriptionSchedulesResourceDefaultSettingsInvoiceSettings'DaysUntilDue obj))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionSchedulesResourceDefaultSettingsInvoiceSettings'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionSchedulesResourceDefaultSettingsInvoiceSettings'" (\obj -> GHC.Base.pure SubscriptionSchedulesResourceDefaultSettingsInvoiceSettings' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "days_until_due"))
-- | Defines the data type for the schema subscriptions_resource_pending_update
-- 
-- Pending Updates store the changes pending from a previous update that will be applied
-- to the Subscription upon successful payment.
data SubscriptionsResourcePendingUpdate = SubscriptionsResourcePendingUpdate {
  -- | billing_cycle_anchor: If the update is applied, determines the date of the first full invoice, and, for plans with \`month\` or \`year\` intervals, the day of the month for subsequent invoices.
  subscriptionsResourcePendingUpdateBillingCycleAnchor :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | expires_at: The point after which the changes reflected by this update will be discarded and no longer applied.
  , subscriptionsResourcePendingUpdateExpiresAt :: GHC.Integer.Type.Integer
  -- | subscription_items: List of subscription items, each with an attached plan, that will be set if the update is applied.
  , subscriptionsResourcePendingUpdateSubscriptionItems :: (GHC.Maybe.Maybe ([] SubscriptionItem))
  -- | trial_end: Unix timestamp representing the end of the trial period the customer will get before being charged for the first time, if the update is applied.
  , subscriptionsResourcePendingUpdateTrialEnd :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | trial_from_plan: Indicates if a plan\'s \`trial_period_days\` should be applied to the subscription. Setting \`trial_end\` per subscription is preferred, and this defaults to \`false\`. Setting this flag to \`true\` together with \`trial_end\` is not allowed.
  , subscriptionsResourcePendingUpdateTrialFromPlan :: (GHC.Maybe.Maybe GHC.Types.Bool)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON SubscriptionsResourcePendingUpdate
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "billing_cycle_anchor" (subscriptionsResourcePendingUpdateBillingCycleAnchor obj) : (Data.Aeson..=) "expires_at" (subscriptionsResourcePendingUpdateExpiresAt obj) : (Data.Aeson..=) "subscription_items" (subscriptionsResourcePendingUpdateSubscriptionItems obj) : (Data.Aeson..=) "trial_end" (subscriptionsResourcePendingUpdateTrialEnd obj) : (Data.Aeson..=) "trial_from_plan" (subscriptionsResourcePendingUpdateTrialFromPlan obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "billing_cycle_anchor" (subscriptionsResourcePendingUpdateBillingCycleAnchor obj) GHC.Base.<> ((Data.Aeson..=) "expires_at" (subscriptionsResourcePendingUpdateExpiresAt obj) GHC.Base.<> ((Data.Aeson..=) "subscription_items" (subscriptionsResourcePendingUpdateSubscriptionItems obj) GHC.Base.<> ((Data.Aeson..=) "trial_end" (subscriptionsResourcePendingUpdateTrialEnd obj) GHC.Base.<> (Data.Aeson..=) "trial_from_plan" (subscriptionsResourcePendingUpdateTrialFromPlan obj)))))
instance Data.Aeson.Types.FromJSON.FromJSON SubscriptionsResourcePendingUpdate
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "SubscriptionsResourcePendingUpdate" (\obj -> ((((GHC.Base.pure SubscriptionsResourcePendingUpdate GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "billing_cycle_anchor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "expires_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "subscription_items")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_end")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "trial_from_plan"))
-- | Defines the data type for the schema tax_id
-- 
-- You can add one or multiple tax IDs to a [customer](https:\/\/stripe.com\/docs\/api\/customers).
-- A customer\'s tax IDs are displayed on invoices and credit notes issued for the customer.
-- 
-- Related guide: [Customer Tax Identification Numbers](https:\/\/stripe.com\/docs\/billing\/taxes\/tax-ids).
data TaxId = TaxId {
  -- | country: Two-letter ISO code representing the country of the tax ID.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  taxIdCountry :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , taxIdCreated :: GHC.Integer.Type.Integer
  -- | customer: ID of the customer.
  , taxIdCustomer :: TaxIdCustomer'Variants
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , taxIdId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , taxIdLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , taxIdObject :: TaxIdObject'
  -- | type: Type of the tax ID, one of \`au_abn\`, \`ca_bn\`, \`ca_qst\`, \`ch_vat\`, \`es_cif\`, \`eu_vat\`, \`hk_br\`, \`in_gst\`, \`jp_cn\`, \`kr_brn\`, \`li_uid\`, \`mx_rfc\`, \`my_itn\`, \`my_sst\`, \`no_vat\`, \`nz_gst\`, \`ru_inn\`, \`sg_uen\`, \`th_vat\`, \`tw_vat\`, \`us_ein\`, or \`za_vat\`. Note that some legacy tax IDs have type \`unknown\`
  , taxIdType :: TaxIdType'
  -- | value: Value of the tax ID.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , taxIdValue :: GHC.Base.String
  -- | verification: 
  , taxIdVerification :: TaxIdVerification
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON TaxId
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "country" (taxIdCountry obj) : (Data.Aeson..=) "created" (taxIdCreated obj) : (Data.Aeson..=) "customer" (taxIdCustomer obj) : (Data.Aeson..=) "id" (taxIdId obj) : (Data.Aeson..=) "livemode" (taxIdLivemode obj) : (Data.Aeson..=) "object" (taxIdObject obj) : (Data.Aeson..=) "type" (taxIdType obj) : (Data.Aeson..=) "value" (taxIdValue obj) : (Data.Aeson..=) "verification" (taxIdVerification obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "country" (taxIdCountry obj) GHC.Base.<> ((Data.Aeson..=) "created" (taxIdCreated obj) GHC.Base.<> ((Data.Aeson..=) "customer" (taxIdCustomer obj) GHC.Base.<> ((Data.Aeson..=) "id" (taxIdId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (taxIdLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (taxIdObject obj) GHC.Base.<> ((Data.Aeson..=) "type" (taxIdType obj) GHC.Base.<> ((Data.Aeson..=) "value" (taxIdValue obj) GHC.Base.<> (Data.Aeson..=) "verification" (taxIdVerification obj)))))))))
instance Data.Aeson.Types.FromJSON.FromJSON TaxId
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "TaxId" (\obj -> ((((((((GHC.Base.pure TaxId GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "value")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "verification"))
-- | Define the one-of schema tax_idCustomer\'
-- 
-- ID of the customer.
data TaxIdCustomer'Variants
    = TaxIdCustomer'Customer Customer
    | TaxIdCustomer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TaxIdCustomer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TaxIdCustomer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the enum schema tax_idObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data TaxIdObject'
    = TaxIdObject'EnumOther Data.Aeson.Types.Internal.Value
    | TaxIdObject'EnumTyped GHC.Base.String
    | TaxIdObject'EnumStringTaxId
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON TaxIdObject'
    where toJSON (TaxIdObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TaxIdObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TaxIdObject'EnumStringTaxId) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_id"
instance Data.Aeson.FromJSON TaxIdObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tax_id")
                                          then TaxIdObject'EnumStringTaxId
                                          else TaxIdObject'EnumOther val)
-- | Defines the enum schema tax_idType\'
-- 
-- Type of the tax ID, one of \`au_abn\`, \`ca_bn\`, \`ca_qst\`, \`ch_vat\`, \`es_cif\`, \`eu_vat\`, \`hk_br\`, \`in_gst\`, \`jp_cn\`, \`kr_brn\`, \`li_uid\`, \`mx_rfc\`, \`my_itn\`, \`my_sst\`, \`no_vat\`, \`nz_gst\`, \`ru_inn\`, \`sg_uen\`, \`th_vat\`, \`tw_vat\`, \`us_ein\`, or \`za_vat\`. Note that some legacy tax IDs have type \`unknown\`
data TaxIdType'
    = TaxIdType'EnumOther Data.Aeson.Types.Internal.Value
    | TaxIdType'EnumTyped GHC.Base.String
    | TaxIdType'EnumStringAuAbn
    | TaxIdType'EnumStringCaBn
    | TaxIdType'EnumStringCaQst
    | TaxIdType'EnumStringChVat
    | TaxIdType'EnumStringEsCif
    | TaxIdType'EnumStringEuVat
    | TaxIdType'EnumStringHkBr
    | TaxIdType'EnumStringInGst
    | TaxIdType'EnumStringJpCn
    | TaxIdType'EnumStringKrBrn
    | TaxIdType'EnumStringLiUid
    | TaxIdType'EnumStringMxRfc
    | TaxIdType'EnumStringMyItn
    | TaxIdType'EnumStringMySst
    | TaxIdType'EnumStringNoVat
    | TaxIdType'EnumStringNzGst
    | TaxIdType'EnumStringRuInn
    | TaxIdType'EnumStringSgUen
    | TaxIdType'EnumStringThVat
    | TaxIdType'EnumStringTwVat
    | TaxIdType'EnumStringUnknown
    | TaxIdType'EnumStringUsEin
    | TaxIdType'EnumStringZaVat
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON TaxIdType'
    where toJSON (TaxIdType'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TaxIdType'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TaxIdType'EnumStringAuAbn) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "au_abn"
          toJSON (TaxIdType'EnumStringCaBn) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ca_bn"
          toJSON (TaxIdType'EnumStringCaQst) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ca_qst"
          toJSON (TaxIdType'EnumStringChVat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ch_vat"
          toJSON (TaxIdType'EnumStringEsCif) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "es_cif"
          toJSON (TaxIdType'EnumStringEuVat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eu_vat"
          toJSON (TaxIdType'EnumStringHkBr) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hk_br"
          toJSON (TaxIdType'EnumStringInGst) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "in_gst"
          toJSON (TaxIdType'EnumStringJpCn) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "jp_cn"
          toJSON (TaxIdType'EnumStringKrBrn) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "kr_brn"
          toJSON (TaxIdType'EnumStringLiUid) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "li_uid"
          toJSON (TaxIdType'EnumStringMxRfc) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mx_rfc"
          toJSON (TaxIdType'EnumStringMyItn) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "my_itn"
          toJSON (TaxIdType'EnumStringMySst) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "my_sst"
          toJSON (TaxIdType'EnumStringNoVat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "no_vat"
          toJSON (TaxIdType'EnumStringNzGst) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nz_gst"
          toJSON (TaxIdType'EnumStringRuInn) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ru_inn"
          toJSON (TaxIdType'EnumStringSgUen) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sg_uen"
          toJSON (TaxIdType'EnumStringThVat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "th_vat"
          toJSON (TaxIdType'EnumStringTwVat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tw_vat"
          toJSON (TaxIdType'EnumStringUnknown) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unknown"
          toJSON (TaxIdType'EnumStringUsEin) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "us_ein"
          toJSON (TaxIdType'EnumStringZaVat) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "za_vat"
instance Data.Aeson.FromJSON TaxIdType'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "au_abn")
                                          then TaxIdType'EnumStringAuAbn
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ca_bn")
                                                then TaxIdType'EnumStringCaBn
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ca_qst")
                                                      then TaxIdType'EnumStringCaQst
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ch_vat")
                                                            then TaxIdType'EnumStringChVat
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "es_cif")
                                                                  then TaxIdType'EnumStringEsCif
                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "eu_vat")
                                                                        then TaxIdType'EnumStringEuVat
                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "hk_br")
                                                                              then TaxIdType'EnumStringHkBr
                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "in_gst")
                                                                                    then TaxIdType'EnumStringInGst
                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "jp_cn")
                                                                                          then TaxIdType'EnumStringJpCn
                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "kr_brn")
                                                                                                then TaxIdType'EnumStringKrBrn
                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "li_uid")
                                                                                                      then TaxIdType'EnumStringLiUid
                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "mx_rfc")
                                                                                                            then TaxIdType'EnumStringMxRfc
                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "my_itn")
                                                                                                                  then TaxIdType'EnumStringMyItn
                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "my_sst")
                                                                                                                        then TaxIdType'EnumStringMySst
                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "no_vat")
                                                                                                                              then TaxIdType'EnumStringNoVat
                                                                                                                              else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "nz_gst")
                                                                                                                                    then TaxIdType'EnumStringNzGst
                                                                                                                                    else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "ru_inn")
                                                                                                                                          then TaxIdType'EnumStringRuInn
                                                                                                                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "sg_uen")
                                                                                                                                                then TaxIdType'EnumStringSgUen
                                                                                                                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "th_vat")
                                                                                                                                                      then TaxIdType'EnumStringThVat
                                                                                                                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "tw_vat")
                                                                                                                                                            then TaxIdType'EnumStringTwVat
                                                                                                                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "unknown")
                                                                                                                                                                  then TaxIdType'EnumStringUnknown
                                                                                                                                                                  else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "us_ein")
                                                                                                                                                                        then TaxIdType'EnumStringUsEin
                                                                                                                                                                        else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "za_vat")
                                                                                                                                                                              then TaxIdType'EnumStringZaVat
                                                                                                                                                                              else TaxIdType'EnumOther val)
-- | Defines the data type for the schema three_d_secure
-- 
-- Cardholder authentication via 3D Secure is initiated by creating a \`3D Secure\`
-- object. Once the object has been created, you can use it to authenticate the
-- cardholder and create a charge.
data ThreeDSecure = ThreeDSecure {
  -- | amount: Amount of the charge that you will create when authentication completes.
  threeDSecureAmount :: GHC.Integer.Type.Integer
  -- | authenticated: True if the cardholder went through the authentication flow and their bank indicated that authentication succeeded.
  , threeDSecureAuthenticated :: GHC.Types.Bool
  -- | card: You can store multiple cards on a customer in order to charge the customer
  -- later. You can also store multiple debit cards on a recipient in order to
  -- transfer to those cards later.
  -- 
  -- Related guide: [Card Payments with Sources](https:\/\/stripe.com\/docs\/sources\/cards).
  , threeDSecureCard :: Card
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , threeDSecureCreated :: GHC.Integer.Type.Integer
  -- | 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).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , threeDSecureCurrency :: GHC.Base.String
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , threeDSecureId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , threeDSecureLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , threeDSecureObject :: ThreeDSecureObject'
  -- | redirect_url: If present, this is the URL that you should send the cardholder to for authentication. If you are going to use Stripe.js to display the authentication page in an iframe, you should use the value \"_callback\".
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , threeDSecureRedirectUrl :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: Possible values are \`redirect_pending\`, \`succeeded\`, or \`failed\`. When the cardholder can be authenticated, the object starts with status \`redirect_pending\`. When liability will be shifted to the cardholder\'s bank (either because the cardholder was successfully authenticated, or because the bank has not implemented 3D Secure, the object wlil be in status \`succeeded\`. \`failed\` indicates that authentication was attempted unsuccessfully.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , threeDSecureStatus :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON ThreeDSecure
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (threeDSecureAmount obj) : (Data.Aeson..=) "authenticated" (threeDSecureAuthenticated obj) : (Data.Aeson..=) "card" (threeDSecureCard obj) : (Data.Aeson..=) "created" (threeDSecureCreated obj) : (Data.Aeson..=) "currency" (threeDSecureCurrency obj) : (Data.Aeson..=) "id" (threeDSecureId obj) : (Data.Aeson..=) "livemode" (threeDSecureLivemode obj) : (Data.Aeson..=) "object" (threeDSecureObject obj) : (Data.Aeson..=) "redirect_url" (threeDSecureRedirectUrl obj) : (Data.Aeson..=) "status" (threeDSecureStatus obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (threeDSecureAmount obj) GHC.Base.<> ((Data.Aeson..=) "authenticated" (threeDSecureAuthenticated obj) GHC.Base.<> ((Data.Aeson..=) "card" (threeDSecureCard obj) GHC.Base.<> ((Data.Aeson..=) "created" (threeDSecureCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (threeDSecureCurrency obj) GHC.Base.<> ((Data.Aeson..=) "id" (threeDSecureId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (threeDSecureLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (threeDSecureObject obj) GHC.Base.<> ((Data.Aeson..=) "redirect_url" (threeDSecureRedirectUrl obj) GHC.Base.<> (Data.Aeson..=) "status" (threeDSecureStatus obj))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON ThreeDSecure
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "ThreeDSecure" (\obj -> (((((((((GHC.Base.pure ThreeDSecure GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "authenticated")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "redirect_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status"))
-- | Defines the enum schema three_d_secureObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data ThreeDSecureObject'
    = ThreeDSecureObject'EnumOther Data.Aeson.Types.Internal.Value
    | ThreeDSecureObject'EnumTyped GHC.Base.String
    | ThreeDSecureObject'EnumStringThreeDSecure
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON ThreeDSecureObject'
    where toJSON (ThreeDSecureObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ThreeDSecureObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (ThreeDSecureObject'EnumStringThreeDSecure) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure"
instance Data.Aeson.FromJSON ThreeDSecureObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "three_d_secure")
                                          then ThreeDSecureObject'EnumStringThreeDSecure
                                          else ThreeDSecureObject'EnumOther val)
-- | Defines the data type for the schema token
-- 
-- Tokenization is the process Stripe uses to collect sensitive card or bank
-- account details, or personally identifiable information (PII), directly from
-- your customers in a secure manner. A token representing this information is
-- returned to your server to use. You should use our
-- [recommended payments integrations](https:\/\/stripe.com\/docs\/payments) to perform this process
-- client-side. This ensures that no sensitive card data touches your server,
-- and allows your integration to operate in a PCI-compliant way.
-- 
-- If you cannot use client-side tokenization, you can also create tokens using
-- the API with either your publishable or secret API key. Keep in mind that if
-- your integration uses this method, you are responsible for any PCI compliance
-- that may be required, and you must keep your secret API key safe. Unlike with
-- client-side tokenization, your customer\'s information is not sent directly to
-- Stripe, so we cannot determine how it is handled or stored.
-- 
-- Tokens cannot be stored or used more than once. To store card or bank account
-- information for later use, you can create [Customer](https:\/\/stripe.com\/docs\/api\#customers)
-- objects or [Custom accounts](https:\/\/stripe.com\/docs\/api\#external_accounts). Note that
-- [Radar](https:\/\/stripe.com\/docs\/radar), our integrated solution for automatic fraud protection,
-- supports only integrations that use client-side tokenization.
-- 
-- Related guide: [Accept a payment](https:\/\/stripe.com\/docs\/payments\/accept-a-payment-charges\#web-create-token)
data Token = Token {
  -- | bank_account: These bank accounts are payment methods on \`Customer\` objects.
  -- 
  -- On the other hand [External Accounts](https:\/\/stripe.com\/docs\/api\#external_accounts) are transfer
  -- destinations on \`Account\` objects for [Custom accounts](https:\/\/stripe.com\/docs\/connect\/custom-accounts).
  -- They can be bank accounts or debit cards as well, and are documented in the links above.
  -- 
  -- Related guide: [Processing ACH & Bank Transfers](https:\/\/stripe.com\/docs\/payments\/ach-bank-transfers).
  tokenBankAccount :: (GHC.Maybe.Maybe BankAccount)
  -- | card: You can store multiple cards on a customer in order to charge the customer
  -- later. You can also store multiple debit cards on a recipient in order to
  -- transfer to those cards later.
  -- 
  -- Related guide: [Card Payments with Sources](https:\/\/stripe.com\/docs\/sources\/cards).
  , tokenCard :: (GHC.Maybe.Maybe Card)
  -- | client_ip: IP address of the client that generated the token.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , tokenClientIp :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , tokenCreated :: GHC.Integer.Type.Integer
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , tokenId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , tokenLivemode :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , tokenObject :: TokenObject'
  -- | type: Type of the token: \`account\`, \`bank_account\`, \`card\`, or \`pii\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , tokenType :: GHC.Base.String
  -- | used: Whether this token has already been used (tokens can be used only once).
  , tokenUsed :: GHC.Types.Bool
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Token
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "bank_account" (tokenBankAccount obj) : (Data.Aeson..=) "card" (tokenCard obj) : (Data.Aeson..=) "client_ip" (tokenClientIp obj) : (Data.Aeson..=) "created" (tokenCreated obj) : (Data.Aeson..=) "id" (tokenId obj) : (Data.Aeson..=) "livemode" (tokenLivemode obj) : (Data.Aeson..=) "object" (tokenObject obj) : (Data.Aeson..=) "type" (tokenType obj) : (Data.Aeson..=) "used" (tokenUsed obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "bank_account" (tokenBankAccount obj) GHC.Base.<> ((Data.Aeson..=) "card" (tokenCard obj) GHC.Base.<> ((Data.Aeson..=) "client_ip" (tokenClientIp obj) GHC.Base.<> ((Data.Aeson..=) "created" (tokenCreated obj) GHC.Base.<> ((Data.Aeson..=) "id" (tokenId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (tokenLivemode obj) GHC.Base.<> ((Data.Aeson..=) "object" (tokenObject obj) GHC.Base.<> ((Data.Aeson..=) "type" (tokenType obj) GHC.Base.<> (Data.Aeson..=) "used" (tokenUsed obj)))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Token
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Token" (\obj -> ((((((((GHC.Base.pure Token GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_ip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "used"))
-- | Defines the enum schema tokenObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data TokenObject'
    = TokenObject'EnumOther Data.Aeson.Types.Internal.Value
    | TokenObject'EnumTyped GHC.Base.String
    | TokenObject'EnumStringToken
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON TokenObject'
    where toJSON (TokenObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TokenObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TokenObject'EnumStringToken) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "token"
instance Data.Aeson.FromJSON TokenObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "token")
                                          then TokenObject'EnumStringToken
                                          else TokenObject'EnumOther val)
-- | Defines the data type for the schema topup
-- 
-- To top up your Stripe balance, you create a top-up object. You can retrieve
-- individual top-ups, as well as list all top-ups. Top-ups are identified by a
-- unique, random ID.
-- 
-- Related guide: [Topping Up your Platform Account](https:\/\/stripe.com\/docs\/connect\/top-ups).
data Topup = Topup {
  -- | amount: Amount transferred.
  topupAmount :: GHC.Integer.Type.Integer
  -- | balance_transaction: ID of the balance transaction that describes the impact of this top-up on your account balance. May not be specified depending on status of top-up.
  , topupBalanceTransaction :: (GHC.Maybe.Maybe TopupBalanceTransaction'Variants)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , topupCreated :: GHC.Integer.Type.Integer
  -- | 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).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , topupCurrency :: GHC.Base.String
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , topupDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | expected_availability_date: Date the funds are expected to arrive in your Stripe account for payouts. This factors in delays like weekends or bank holidays. May not be specified depending on status of top-up.
  , topupExpectedAvailabilityDate :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | failure_code: Error code explaining reason for top-up failure if available (see [the errors section](https:\/\/stripe.com\/docs\/api\#errors) for a list of codes).
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , topupFailureCode :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | failure_message: Message to user further explaining reason for top-up failure if available.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , topupFailureMessage :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , topupId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , topupLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , topupMetadata :: TopupMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , topupObject :: TopupObject'
  -- | source: \`Source\` objects allow you to accept a variety of payment methods. They
  -- represent a customer\'s payment instrument, and can be used with the Stripe API
  -- just like a \`Card\` object: once chargeable, they can be charged, or can be
  -- attached to customers.
  -- 
  -- Related guides: [Sources API](https:\/\/stripe.com\/docs\/sources) and [Sources & Customers](https:\/\/stripe.com\/docs\/sources\/customers).
  , topupSource :: Source
  -- | statement_descriptor: Extra information about a top-up. This will appear on your source\'s bank statement. It must contain at least one letter.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , topupStatementDescriptor :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | status: The status of the top-up is either \`canceled\`, \`failed\`, \`pending\`, \`reversed\`, or \`succeeded\`.
  , topupStatus :: TopupStatus'
  -- | transfer_group: A string that identifies this top-up as part of a group.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , topupTransferGroup :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Topup
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (topupAmount obj) : (Data.Aeson..=) "balance_transaction" (topupBalanceTransaction obj) : (Data.Aeson..=) "created" (topupCreated obj) : (Data.Aeson..=) "currency" (topupCurrency obj) : (Data.Aeson..=) "description" (topupDescription obj) : (Data.Aeson..=) "expected_availability_date" (topupExpectedAvailabilityDate obj) : (Data.Aeson..=) "failure_code" (topupFailureCode obj) : (Data.Aeson..=) "failure_message" (topupFailureMessage obj) : (Data.Aeson..=) "id" (topupId obj) : (Data.Aeson..=) "livemode" (topupLivemode obj) : (Data.Aeson..=) "metadata" (topupMetadata obj) : (Data.Aeson..=) "object" (topupObject obj) : (Data.Aeson..=) "source" (topupSource obj) : (Data.Aeson..=) "statement_descriptor" (topupStatementDescriptor obj) : (Data.Aeson..=) "status" (topupStatus obj) : (Data.Aeson..=) "transfer_group" (topupTransferGroup obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (topupAmount obj) GHC.Base.<> ((Data.Aeson..=) "balance_transaction" (topupBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "created" (topupCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (topupCurrency obj) GHC.Base.<> ((Data.Aeson..=) "description" (topupDescription obj) GHC.Base.<> ((Data.Aeson..=) "expected_availability_date" (topupExpectedAvailabilityDate obj) GHC.Base.<> ((Data.Aeson..=) "failure_code" (topupFailureCode obj) GHC.Base.<> ((Data.Aeson..=) "failure_message" (topupFailureMessage obj) GHC.Base.<> ((Data.Aeson..=) "id" (topupId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (topupLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (topupMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (topupObject obj) GHC.Base.<> ((Data.Aeson..=) "source" (topupSource obj) GHC.Base.<> ((Data.Aeson..=) "statement_descriptor" (topupStatementDescriptor obj) GHC.Base.<> ((Data.Aeson..=) "status" (topupStatus obj) GHC.Base.<> (Data.Aeson..=) "transfer_group" (topupTransferGroup obj))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Topup
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Topup" (\obj -> (((((((((((((((GHC.Base.pure Topup GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "expected_availability_date")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "failure_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "failure_message")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "source")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transfer_group"))
-- | Define the one-of schema topupBalance_transaction\'
-- 
-- ID of the balance transaction that describes the impact of this top-up on your account balance. May not be specified depending on status of top-up.
data TopupBalanceTransaction'Variants
    = TopupBalanceTransaction'BalanceTransaction BalanceTransaction
    | TopupBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TopupBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TopupBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema topupMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data TopupMetadata' = TopupMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON TopupMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON TopupMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "TopupMetadata'" (\obj -> GHC.Base.pure TopupMetadata')
-- | Defines the enum schema topupObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data TopupObject'
    = TopupObject'EnumOther Data.Aeson.Types.Internal.Value
    | TopupObject'EnumTyped GHC.Base.String
    | TopupObject'EnumStringTopup
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON TopupObject'
    where toJSON (TopupObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TopupObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TopupObject'EnumStringTopup) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "topup"
instance Data.Aeson.FromJSON TopupObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "topup")
                                          then TopupObject'EnumStringTopup
                                          else TopupObject'EnumOther val)
-- | Defines the enum schema topupStatus\'
-- 
-- The status of the top-up is either \`canceled\`, \`failed\`, \`pending\`, \`reversed\`, or \`succeeded\`.
data TopupStatus'
    = TopupStatus'EnumOther Data.Aeson.Types.Internal.Value
    | TopupStatus'EnumTyped GHC.Base.String
    | TopupStatus'EnumStringCanceled
    | TopupStatus'EnumStringFailed
    | TopupStatus'EnumStringPending
    | TopupStatus'EnumStringReversed
    | TopupStatus'EnumStringSucceeded
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON TopupStatus'
    where toJSON (TopupStatus'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TopupStatus'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TopupStatus'EnumStringCanceled) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled"
          toJSON (TopupStatus'EnumStringFailed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "failed"
          toJSON (TopupStatus'EnumStringPending) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pending"
          toJSON (TopupStatus'EnumStringReversed) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reversed"
          toJSON (TopupStatus'EnumStringSucceeded) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "succeeded"
instance Data.Aeson.FromJSON TopupStatus'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "canceled")
                                          then TopupStatus'EnumStringCanceled
                                          else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "failed")
                                                then TopupStatus'EnumStringFailed
                                                else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "pending")
                                                      then TopupStatus'EnumStringPending
                                                      else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "reversed")
                                                            then TopupStatus'EnumStringReversed
                                                            else if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "succeeded")
                                                                  then TopupStatus'EnumStringSucceeded
                                                                  else TopupStatus'EnumOther val)
-- | Defines the data type for the schema transfer
-- 
-- A \`Transfer\` object is created when you move funds between Stripe accounts as
-- part of Connect.
-- 
-- Before April 6, 2017, transfers also represented movement of funds from a
-- Stripe account to a card or bank account. This behavior has since been split
-- out into a [Payout](https:\/\/stripe.com\/docs\/api\#payout_object) object, with corresponding payout endpoints. For more
-- information, read about the
-- [transfer\/payout split](https:\/\/stripe.com\/docs\/transfer-payout-split).
-- 
-- Related guide: [Creating Separate Charges and Transfers](https:\/\/stripe.com\/docs\/connect\/charges-transfers).
data Transfer = Transfer {
  -- | amount: Amount in %s to be transferred.
  transferAmount :: GHC.Integer.Type.Integer
  -- | amount_reversed: Amount in %s reversed (can be less than the amount attribute on the transfer if a partial reversal was issued).
  , transferAmountReversed :: GHC.Integer.Type.Integer
  -- | balance_transaction: Balance transaction that describes the impact of this transfer on your account balance.
  , transferBalanceTransaction :: (GHC.Maybe.Maybe TransferBalanceTransaction'Variants)
  -- | created: Time that this record of the transfer was first created.
  , transferCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , transferCurrency :: GHC.Base.String
  -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , transferDescription :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | destination: ID of the Stripe account the transfer was sent to.
  , transferDestination :: (GHC.Maybe.Maybe TransferDestination'Variants)
  -- | destination_payment: If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer.
  , transferDestinationPayment :: (GHC.Maybe.Maybe TransferDestinationPayment'Variants)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , transferId :: GHC.Base.String
  -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
  , transferLivemode :: GHC.Types.Bool
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , transferMetadata :: TransferMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , transferObject :: TransferObject'
  -- | reversals: A list of reversals that have been applied to the transfer.
  , transferReversals :: TransferReversals'
  -- | reversed: Whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false.
  , transferReversed :: GHC.Types.Bool
  -- | source_transaction: ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance.
  , transferSourceTransaction :: (GHC.Maybe.Maybe TransferSourceTransaction'Variants)
  -- | source_type: The source balance this transfer came from. One of \`card\`, \`fpx\`, or \`bank_account\`.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , transferSourceType :: (GHC.Maybe.Maybe GHC.Base.String)
  -- | transfer_group: A string that identifies this transaction as part of a group. See the [Connect documentation](https:\/\/stripe.com\/docs\/connect\/charges-transfers\#transfer-options) for details.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , transferTransferGroup :: (GHC.Maybe.Maybe GHC.Base.String)
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON Transfer
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (transferAmount obj) : (Data.Aeson..=) "amount_reversed" (transferAmountReversed obj) : (Data.Aeson..=) "balance_transaction" (transferBalanceTransaction obj) : (Data.Aeson..=) "created" (transferCreated obj) : (Data.Aeson..=) "currency" (transferCurrency obj) : (Data.Aeson..=) "description" (transferDescription obj) : (Data.Aeson..=) "destination" (transferDestination obj) : (Data.Aeson..=) "destination_payment" (transferDestinationPayment obj) : (Data.Aeson..=) "id" (transferId obj) : (Data.Aeson..=) "livemode" (transferLivemode obj) : (Data.Aeson..=) "metadata" (transferMetadata obj) : (Data.Aeson..=) "object" (transferObject obj) : (Data.Aeson..=) "reversals" (transferReversals obj) : (Data.Aeson..=) "reversed" (transferReversed obj) : (Data.Aeson..=) "source_transaction" (transferSourceTransaction obj) : (Data.Aeson..=) "source_type" (transferSourceType obj) : (Data.Aeson..=) "transfer_group" (transferTransferGroup obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (transferAmount obj) GHC.Base.<> ((Data.Aeson..=) "amount_reversed" (transferAmountReversed obj) GHC.Base.<> ((Data.Aeson..=) "balance_transaction" (transferBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "created" (transferCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (transferCurrency obj) GHC.Base.<> ((Data.Aeson..=) "description" (transferDescription obj) GHC.Base.<> ((Data.Aeson..=) "destination" (transferDestination obj) GHC.Base.<> ((Data.Aeson..=) "destination_payment" (transferDestinationPayment obj) GHC.Base.<> ((Data.Aeson..=) "id" (transferId obj) GHC.Base.<> ((Data.Aeson..=) "livemode" (transferLivemode obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (transferMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (transferObject obj) GHC.Base.<> ((Data.Aeson..=) "reversals" (transferReversals obj) GHC.Base.<> ((Data.Aeson..=) "reversed" (transferReversed obj) GHC.Base.<> ((Data.Aeson..=) "source_transaction" (transferSourceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "source_type" (transferSourceType obj) GHC.Base.<> (Data.Aeson..=) "transfer_group" (transferTransferGroup obj)))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Transfer
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "Transfer" (\obj -> ((((((((((((((((GHC.Base.pure Transfer GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount_reversed")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "destination")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "destination_payment")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "reversals")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "reversed")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transfer_group"))
-- | Define the one-of schema transferBalance_transaction\'
-- 
-- Balance transaction that describes the impact of this transfer on your account balance.
data TransferBalanceTransaction'Variants
    = TransferBalanceTransaction'BalanceTransaction BalanceTransaction
    | TransferBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TransferBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TransferBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema transferDestination\'
-- 
-- ID of the Stripe account the transfer was sent to.
data TransferDestination'Variants
    = TransferDestination'Account Account
    | TransferDestination'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TransferDestination'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TransferDestination'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema transferDestination_payment\'
-- 
-- If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer.
data TransferDestinationPayment'Variants
    = TransferDestinationPayment'Charge Charge
    | TransferDestinationPayment'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TransferDestinationPayment'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TransferDestinationPayment'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema transferMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data TransferMetadata' = TransferMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON TransferMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON TransferMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "TransferMetadata'" (\obj -> GHC.Base.pure TransferMetadata')
-- | Defines the enum schema transferObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data TransferObject'
    = TransferObject'EnumOther Data.Aeson.Types.Internal.Value
    | TransferObject'EnumTyped GHC.Base.String
    | TransferObject'EnumStringTransfer
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON TransferObject'
    where toJSON (TransferObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TransferObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TransferObject'EnumStringTransfer) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer"
instance Data.Aeson.FromJSON TransferObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer")
                                          then TransferObject'EnumStringTransfer
                                          else TransferObject'EnumOther val)
-- | Defines the data type for the schema transferReversals\'
-- 
-- A list of reversals that have been applied to the transfer.
data TransferReversals' = TransferReversals' {
  -- | data: Details about each object.
  transferReversals'Data :: ([] TransferReversal)
  -- | has_more: True if this list has another page of items after this one that can be fetched.
  , transferReversals'HasMore :: GHC.Types.Bool
  -- | object: String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
  , transferReversals'Object :: TransferReversals'Object'
  -- | url: The URL where this list can be accessed.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , transferReversals'Url :: GHC.Base.String
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON TransferReversals'
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "data" (transferReversals'Data obj) : (Data.Aeson..=) "has_more" (transferReversals'HasMore obj) : (Data.Aeson..=) "object" (transferReversals'Object obj) : (Data.Aeson..=) "url" (transferReversals'Url obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "data" (transferReversals'Data obj) GHC.Base.<> ((Data.Aeson..=) "has_more" (transferReversals'HasMore obj) GHC.Base.<> ((Data.Aeson..=) "object" (transferReversals'Object obj) GHC.Base.<> (Data.Aeson..=) "url" (transferReversals'Url obj))))
instance Data.Aeson.Types.FromJSON.FromJSON TransferReversals'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "TransferReversals'" (\obj -> (((GHC.Base.pure TransferReversals' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url"))
-- | Defines the enum schema transferReversals\'Object\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value. Always has the value \`list\`.
data TransferReversals'Object'
    = TransferReversals'Object'EnumOther Data.Aeson.Types.Internal.Value
    | TransferReversals'Object'EnumTyped GHC.Base.String
    | TransferReversals'Object'EnumStringList
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON TransferReversals'Object'
    where toJSON (TransferReversals'Object'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TransferReversals'Object'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TransferReversals'Object'EnumStringList) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list"
instance Data.Aeson.FromJSON TransferReversals'Object'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "list")
                                          then TransferReversals'Object'EnumStringList
                                          else TransferReversals'Object'EnumOther val)
-- | Define the one-of schema transferSource_transaction\'
-- 
-- ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance.
data TransferSourceTransaction'Variants
    = TransferSourceTransaction'Charge Charge
    | TransferSourceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TransferSourceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TransferSourceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema transfer_data
-- 
-- 
data TransferData = TransferData {
  -- | amount: Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https:\/\/stripe.com\/docs\/currencies\#zero-decimal) (e.g., 100 cents to charge \$1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is \$0.50 US or [equivalent in charge currency](https:\/\/stripe.com\/docs\/currencies\#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of \$999,999.99).
  transferDataAmount :: (GHC.Maybe.Maybe GHC.Integer.Type.Integer)
  -- | destination: The account (if any) the payment will be attributed to for tax
  -- reporting, and where funds from the payment will be transferred to upon
  -- payment success.
  , transferDataDestination :: TransferDataDestination'Variants
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON TransferData
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (transferDataAmount obj) : (Data.Aeson..=) "destination" (transferDataDestination obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (transferDataAmount obj) GHC.Base.<> (Data.Aeson..=) "destination" (transferDataDestination obj))
instance Data.Aeson.Types.FromJSON.FromJSON TransferData
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "TransferData" (\obj -> (GHC.Base.pure TransferData GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "destination"))
-- | Define the one-of schema transfer_dataDestination\'
-- 
-- The account (if any) the payment will be attributed to for tax
-- reporting, and where funds from the payment will be transferred to upon
-- payment success.
data TransferDataDestination'Variants
    = TransferDataDestination'Account Account
    | TransferDataDestination'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TransferDataDestination'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TransferDataDestination'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema transfer_reversal
-- 
-- [Stripe Connect](https:\/\/stripe.com\/docs\/connect) platforms can reverse transfers made to a
-- connected account, either entirely or partially, and can also specify whether
-- to refund any related application fees. Transfer reversals add to the
-- platform\'s balance and subtract from the destination account\'s balance.
-- 
-- Reversing a transfer that was made for a [destination
-- charge](\/docs\/connect\/destination-charges) is allowed only up to the amount of
-- the charge. It is possible to reverse a
-- [transfer_group](https:\/\/stripe.com\/docs\/connect\/charges-transfers\#transfer-options)
-- transfer only if the destination account has enough balance to cover the
-- reversal.
-- 
-- Related guide: [Reversing Transfers](https:\/\/stripe.com\/docs\/connect\/charges-transfers\#reversing-transfers).
data TransferReversal = TransferReversal {
  -- | amount: Amount, in %s.
  transferReversalAmount :: GHC.Integer.Type.Integer
  -- | balance_transaction: Balance transaction that describes the impact on your account balance.
  , transferReversalBalanceTransaction :: (GHC.Maybe.Maybe TransferReversalBalanceTransaction'Variants)
  -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
  , transferReversalCreated :: GHC.Integer.Type.Integer
  -- | 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).
  , transferReversalCurrency :: GHC.Base.String
  -- | destination_payment_refund: Linked payment refund for the transfer reversal.
  , transferReversalDestinationPaymentRefund :: (GHC.Maybe.Maybe TransferReversalDestinationPaymentRefund'Variants)
  -- | id: Unique identifier for the object.
  -- 
  -- Constraints:
  -- 
  -- * Maximum length of 5000
  , transferReversalId :: GHC.Base.String
  -- | metadata: Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
  , transferReversalMetadata :: TransferReversalMetadata'
  -- | object: String representing the object\'s type. Objects of the same type share the same value.
  , transferReversalObject :: TransferReversalObject'
  -- | source_refund: ID of the refund responsible for the transfer reversal.
  , transferReversalSourceRefund :: (GHC.Maybe.Maybe TransferReversalSourceRefund'Variants)
  -- | transfer: ID of the transfer that was reversed.
  , transferReversalTransfer :: TransferReversalTransfer'Variants
  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON TransferReversal
    where toJSON obj = Data.Aeson.object ((Data.Aeson..=) "amount" (transferReversalAmount obj) : (Data.Aeson..=) "balance_transaction" (transferReversalBalanceTransaction obj) : (Data.Aeson..=) "created" (transferReversalCreated obj) : (Data.Aeson..=) "currency" (transferReversalCurrency obj) : (Data.Aeson..=) "destination_payment_refund" (transferReversalDestinationPaymentRefund obj) : (Data.Aeson..=) "id" (transferReversalId obj) : (Data.Aeson..=) "metadata" (transferReversalMetadata obj) : (Data.Aeson..=) "object" (transferReversalObject obj) : (Data.Aeson..=) "source_refund" (transferReversalSourceRefund obj) : (Data.Aeson..=) "transfer" (transferReversalTransfer obj) : [])
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "amount" (transferReversalAmount obj) GHC.Base.<> ((Data.Aeson..=) "balance_transaction" (transferReversalBalanceTransaction obj) GHC.Base.<> ((Data.Aeson..=) "created" (transferReversalCreated obj) GHC.Base.<> ((Data.Aeson..=) "currency" (transferReversalCurrency obj) GHC.Base.<> ((Data.Aeson..=) "destination_payment_refund" (transferReversalDestinationPaymentRefund obj) GHC.Base.<> ((Data.Aeson..=) "id" (transferReversalId obj) GHC.Base.<> ((Data.Aeson..=) "metadata" (transferReversalMetadata obj) GHC.Base.<> ((Data.Aeson..=) "object" (transferReversalObject obj) GHC.Base.<> ((Data.Aeson..=) "source_refund" (transferReversalSourceRefund obj) GHC.Base.<> (Data.Aeson..=) "transfer" (transferReversalTransfer obj))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON TransferReversal
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "TransferReversal" (\obj -> (((((((((GHC.Base.pure TransferReversal GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "destination_payment_refund")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_refund")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "transfer"))
-- | Define the one-of schema transfer_reversalBalance_transaction\'
-- 
-- Balance transaction that describes the impact on your account balance.
data TransferReversalBalanceTransaction'Variants
    = TransferReversalBalanceTransaction'BalanceTransaction BalanceTransaction
    | TransferReversalBalanceTransaction'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TransferReversalBalanceTransaction'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TransferReversalBalanceTransaction'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema transfer_reversalDestination_payment_refund\'
-- 
-- Linked payment refund for the transfer reversal.
data TransferReversalDestinationPaymentRefund'Variants
    = TransferReversalDestinationPaymentRefund'Refund Refund
    | TransferReversalDestinationPaymentRefund'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TransferReversalDestinationPaymentRefund'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TransferReversalDestinationPaymentRefund'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Defines the data type for the schema transfer_reversalMetadata\'
-- 
-- Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
data TransferReversalMetadata' = TransferReversalMetadata' {

  } deriving (GHC.Show.Show
  , GHC.Classes.Eq)
instance Data.Aeson.ToJSON TransferReversalMetadata'
    where toJSON obj = Data.Aeson.object []
          toEncoding obj = Data.Aeson.pairs ((Data.Aeson..=) "string" ("string" :: GHC.Base.String))
instance Data.Aeson.Types.FromJSON.FromJSON TransferReversalMetadata'
    where parseJSON = Data.Aeson.Types.FromJSON.withObject "TransferReversalMetadata'" (\obj -> GHC.Base.pure TransferReversalMetadata')
-- | Defines the enum schema transfer_reversalObject\'
-- 
-- String representing the object\'s type. Objects of the same type share the same value.
data TransferReversalObject'
    = TransferReversalObject'EnumOther Data.Aeson.Types.Internal.Value
    | TransferReversalObject'EnumTyped GHC.Base.String
    | TransferReversalObject'EnumStringTransferReversal
    deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.ToJSON TransferReversalObject'
    where toJSON (TransferReversalObject'EnumOther patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TransferReversalObject'EnumTyped patternName) = Data.Aeson.Types.ToJSON.toJSON patternName
          toJSON (TransferReversalObject'EnumStringTransferReversal) = Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer_reversal"
instance Data.Aeson.FromJSON TransferReversalObject'
    where parseJSON val = GHC.Base.pure (if val GHC.Classes.== (Data.Aeson.Types.Internal.String GHC.Base.$ Data.Text.pack "transfer_reversal")
                                          then TransferReversalObject'EnumStringTransferReversal
                                          else TransferReversalObject'EnumOther val)
-- | Define the one-of schema transfer_reversalSource_refund\'
-- 
-- ID of the refund responsible for the transfer reversal.
data TransferReversalSourceRefund'Variants
    = TransferReversalSourceRefund'Refund Refund
    | TransferReversalSourceRefund'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TransferReversalSourceRefund'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TransferReversalSourceRefund'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
-- | Define the one-of schema transfer_reversalTransfer\'
-- 
-- ID of the transfer that was reversed.
data TransferReversalTransfer'Variants
    = TransferReversalTransfer'Transfer Transfer
    | TransferReversalTransfer'String GHC.Base.String
    deriving (GHC.Show.Show, GHC.Classes.Eq, GHC.Generics.Generic)
instance Data.Aeson.ToJSON TransferReversalTransfer'Variants
    where toJSON = Data.Aeson.Types.ToJSON.genericToJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}
instance Data.Aeson.FromJSON TransferReversalTransfer'Variants
    where parseJSON = Data.Aeson.Types.FromJSON.genericParseJSON Data.Aeson.Types.Internal.defaultOptions{Data.Aeson.Types.Internal.sumEncoding = Data.Aeson.Types.Internal.UntaggedValue}