{-# LANGUAGE ExplicitForAll #-}
{-# LANGUAGE MultiWayIf #-}
-- CHANGE WITH CAUTION: This is a generated code file generated by https://github.com/Haskell-OpenAPI-Code-Generator/Haskell-OpenAPI-Client-Code-Generator.
{-# LANGUAGE OverloadedStrings #-}

-- | Contains the different functions to run the operation postCustomersCustomerSubscriptionsSubscriptionExposedId
module StripeAPI.Operations.PostCustomersCustomerSubscriptionsSubscriptionExposedId where

import qualified Control.Monad.Fail
import qualified Control.Monad.Trans.Reader
import qualified Data.Aeson
import qualified Data.Aeson as Data.Aeson.Encoding.Internal
import qualified Data.Aeson as Data.Aeson.Types
import qualified Data.Aeson as Data.Aeson.Types.FromJSON
import qualified Data.Aeson as Data.Aeson.Types.Internal
import qualified Data.Aeson as Data.Aeson.Types.ToJSON
import qualified Data.ByteString.Char8
import qualified Data.ByteString.Char8 as Data.ByteString.Internal
import qualified Data.Either
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 Data.Vector
import qualified GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified Network.HTTP.Client
import qualified Network.HTTP.Client as Network.HTTP.Client.Request
import qualified Network.HTTP.Client as Network.HTTP.Client.Types
import qualified Network.HTTP.Simple
import qualified Network.HTTP.Types
import qualified Network.HTTP.Types as Network.HTTP.Types.Status
import qualified Network.HTTP.Types as Network.HTTP.Types.URI
import qualified StripeAPI.Common
import StripeAPI.Types
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | > POST /v1/customers/{customer}/subscriptions/{subscription_exposed_id}
--
-- \<p>Updates an existing subscription on a customer to match the specified parameters. When changing plans or quantities, we will optionally prorate the price we charge next month to make up for any price changes. To preview how the proration will be calculated, use the \<a href=\"\#upcoming_invoice\">upcoming invoice\<\/a> endpoint.\<\/p>
postCustomersCustomerSubscriptionsSubscriptionExposedId ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | Contains all available parameters of this operation (query and path parameters)
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters ->
  -- | The request body to send
  GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
postCustomersCustomerSubscriptionsSubscriptionExposedId :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> ClientT
     m
     (Response
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
postCustomersCustomerSubscriptionsSubscriptionExposedId
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
parameters
  Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
body =
    (Response ByteString
 -> Response
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
-> ClientT m (Response ByteString)
-> ClientT
     m
     (Response
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
      ( \Response ByteString
response_0 ->
          (ByteString
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
-> Response ByteString
-> Response
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
            ( (String
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
-> Either
     String
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponseError PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
forall a. a -> a
GHC.Base.id
                (Either
   String
   PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
-> (ByteString
    -> Either
         String
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
-> ByteString
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. ( \Response ByteString
response ByteString
body ->
                               if
                                   | (\Status
status_1 -> Status -> Int
Network.HTTP.Types.Status.statusCode Status
status_1 Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Int
200) (Response ByteString -> Status
forall body. Response body -> Status
Network.HTTP.Client.Types.responseStatus Response ByteString
response) ->
                                     Subscription
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse200
                                       (Subscription
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
-> Either String Subscription
-> Either
     String
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String Subscription
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                            Data.Either.Either
                                                              GHC.Base.String
                                                              Subscription
                                                        )
                                   | Bool -> Status -> Bool
forall a b. a -> b -> a
GHC.Base.const Bool
GHC.Types.True (Response ByteString -> Status
forall body. Response body -> Status
Network.HTTP.Client.Types.responseStatus Response ByteString
response) ->
                                     Error
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponseDefault
                                       (Error
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse)
-> Either String Error
-> Either
     String
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String Error
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                            Data.Either.Either
                                                              GHC.Base.String
                                                              Error
                                                        )
                                   | Bool
GHC.Base.otherwise -> String
-> Either
     String
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
forall a b. a -> Either a b
Data.Either.Left String
"Missing default response type"
                           )
                  Response ByteString
response_0
            )
            Response ByteString
response_0
      )
      (Text
-> Text
-> [QueryParameter]
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> RequestBodyEncoding
-> ClientT m (Response ByteString)
forall (m :: * -> *) body.
(MonadHTTP m, ToJSON body) =>
Text
-> Text
-> [QueryParameter]
-> Maybe body
-> RequestBodyEncoding
-> ClientT m (Response ByteString)
StripeAPI.Common.doBodyCallWithConfigurationM (Text -> Text
Data.Text.toUpper (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
GHC.Base.$ String -> Text
Data.Text.pack String
"POST") (String -> Text
Data.Text.pack (String
"/v1/customers/" String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (ByteString -> String
Data.ByteString.Char8.unpack (Bool -> ByteString -> ByteString
Network.HTTP.Types.URI.urlEncode Bool
GHC.Types.True (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ (String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> String -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ Text -> String
forall a. StringifyModel a => a -> String
StripeAPI.Common.stringifyModel (PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathCustomer PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
parameters))) String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (String
"/subscriptions/" String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (ByteString -> String
Data.ByteString.Char8.unpack (Bool -> ByteString -> ByteString
Network.HTTP.Types.URI.urlEncode Bool
GHC.Types.True (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ (String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> String -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ Text -> String
forall a. StringifyModel a => a -> String
StripeAPI.Common.stringifyModel (PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathSubscriptionExposedId PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
parameters))) String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ String
""))))) [QueryParameter]
forall a. Monoid a => a
GHC.Base.mempty Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
body RequestBodyEncoding
StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.parameters@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters = PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
  { -- | pathCustomer: Represents the parameter named \'customer\'
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathCustomer :: Data.Text.Internal.Text,
    -- | pathSubscription_exposed_id: Represents the parameter named \'subscription_exposed_id\'
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathSubscriptionExposedId :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"pathCustomer" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathCustomer PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"pathSubscription_exposed_id" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathSubscriptionExposedId PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"pathCustomer" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathCustomer PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"pathSubscription_exposed_id" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathSubscriptionExposedId PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters)
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters" (\Object
obj -> ((Text
 -> Text
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters)
-> Parser
     (Text
      -> Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters Parser
  (Text
   -> Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters)
-> Parser Text
-> Parser
     (Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"pathCustomer")) Parser
  (Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters)
-> Parser Text
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"pathSubscription_exposed_id"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters ::
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathCustomer'
  Data.Text.Internal.Text ->
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathSubscriptionExposedId'
  Data.Text.Internal.Text ->
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters :: Text
-> Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathCustomer Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathSubscriptionExposedId =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters :: Text
-> Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
PostCustomersCustomerSubscriptionsSubscriptionExposedIdParameters
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathCustomer :: Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathCustomer = Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathCustomer,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathSubscriptionExposedId :: Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathSubscriptionExposedId = Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdParametersPathSubscriptionExposedId
    }

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
  { -- | add_invoice_items: A list of prices and quantities that will generate invoice items appended to the first invoice for this subscription. You may pass up to 20 items.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems :: (GHC.Maybe.Maybe ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'])),
    -- | 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. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https:\/\/stripe.com\/docs\/connect\/subscriptions\#collecting-fees-on-subscriptions).
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Double
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyApplicationFeePercent :: (GHC.Maybe.Maybe GHC.Types.Double),
    -- | automatic_tax: Automatic tax settings for this subscription.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'),
    -- | billing_cycle_anchor: Either \`now\` or \`unchanged\`. Setting the value to \`now\` resets the subscription\'s billing cycle anchor to the current time. For more information, see the billing cycle [documentation](https:\/\/stripe.com\/docs\/billing\/subscriptions\/billing-cycle).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'),
    -- | billing_thresholds: Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants),
    -- | cancel_at: A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using \`proration_behavior\`. If set during a future period, this will always cause a proration for that period.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants),
    -- | cancel_at_period_end: Boolean indicating whether this subscription should cancel at the end of the current period.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAtPeriodEnd :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | 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. Defaults to \`charge_automatically\`.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'),
    -- | coupon: The ID of the coupon to apply to this subscription. A coupon applied to a subscription will only affect invoices created for that particular subscription.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCoupon :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | days_until_due: Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where \`collection_method\` is set to \`send_invoice\`.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDaysUntilDue :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | default_payment_method: ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over \`default_source\`. If neither are set, invoices will use the customer\'s [invoice_settings.default_payment_method](https:\/\/stripe.com\/docs\/api\/customers\/object\#customer_object-invoice_settings-default_payment_method) or [default_source](https:\/\/stripe.com\/docs\/api\/customers\/object\#customer_object-default_source).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultPaymentMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | 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 \`default_payment_method\` is also set, \`default_payment_method\` will take precedence. If neither are set, invoices will use the customer\'s [invoice_settings.default_payment_method](https:\/\/stripe.com\/docs\/api\/customers\/object\#customer_object-invoice_settings-default_payment_method) or [default_source](https:\/\/stripe.com\/docs\/api\/customers\/object\#customer_object-default_source).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultSource :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | 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. Pass an empty string to remove previously-defined tax rates.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants),
    -- | expand: Specifies which fields in the response should be expanded.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe [Text]
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | items: A list of up to 20 subscription items, each with an attached price.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems :: (GHC.Maybe.Maybe ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'])),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants),
    -- | off_session: Indicates if a customer is on or off-session while an invoice payment is attempted.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyOffSession :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | pause_collection: If specified, payment collection for this subscription will be paused.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants),
    -- | payment_behavior: Use \`allow_incomplete\` to transition the subscription to \`status=past_due\` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription\'s invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https:\/\/stripe.com\/docs\/billing\/migration\/strong-customer-authentication) for Billing to learn more. This is the default behavior.
    --
    -- Use \`default_incomplete\` to transition the subscription to \`status=past_due\` when payment is required and await explicit confirmation of the invoice\'s payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription’s invoice. Such as failed payments, [SCA regulation](https:\/\/stripe.com\/docs\/billing\/migration\/strong-customer-authentication), or collecting a mandate for a bank debit payment method.
    --
    -- Use \`pending_if_incomplete\` to update the subscription using [pending updates](https:\/\/stripe.com\/docs\/billing\/subscriptions\/pending-updates). When you use \`pending_if_incomplete\` you can only pass the parameters [supported by pending updates](https:\/\/stripe.com\/docs\/billing\/pending-updates-reference\#supported-attributes).
    --
    -- Use \`error_if_incomplete\` if you want Stripe to return an HTTP 402 status code if a subscription\'s invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https:\/\/stripe.com\/docs\/upgrades\#2019-03-14) to learn more.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'),
    -- | 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.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants),
    -- | promotion_code: The promotion code to apply to this subscription. A promotion code applied to a subscription will only affect invoices created for that particular subscription.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPromotionCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | proration_behavior: Determines how to handle [prorations](https:\/\/stripe.com\/docs\/subscriptions\/billing-cycle\#prorations) when the billing cycle changes (e.g., when switching plans, resetting \`billing_cycle_anchor=now\`, or starting a trial), or if an item\'s \`quantity\` changes. Valid values are \`create_prorations\`, \`none\`, or \`always_invoice\`.
    --
    -- Passing \`create_prorations\` will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https:\/\/stripe.com\/docs\/subscriptions\/upgrading-downgrading\#immediate-payment). In order to always invoice immediately for prorations, pass \`always_invoice\`.
    --
    -- Prorations can be disabled by passing \`none\`.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'),
    -- | proration_date: If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply exactly the same proration that was previewed with [upcoming invoice](https:\/\/stripe.com\/docs\/api\#retrieve_customer_invoice) endpoint. It can also be used to implement custom proration logic, such as prorating by day instead of by second, by providing the time that you wish to use for proration calculations.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationDate :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | transfer_data: If specified, the funds from the subscription\'s invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. This will be unset if you POST an empty value.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants),
    -- | trial_end: Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value \`now\` can be provided to end the customer\'s trial immediately. Can be at most two years from \`billing_cycle_anchor\`.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants),
    -- | 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.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialFromPlan :: (GHC.Maybe.Maybe GHC.Types.Bool)
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"add_invoice_items" Text
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"application_fee_percent" Text -> Maybe Double -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Double
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyApplicationFeePercent PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"automatic_tax" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_cycle_anchor" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_thresholds" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cancel_at" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cancel_at_period_end" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAtPeriodEnd PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"collection_method" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"coupon" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCoupon PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"days_until_due" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDaysUntilDue PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_payment_method" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultPaymentMethod PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_source" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultSource PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_tax_rates" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"expand" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe [Text]
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyExpand PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"items" Text
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"off_session" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyOffSession PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"pause_collection" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_behavior" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"pending_invoice_item_interval" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"promotion_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPromotionCode PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"proration_behavior" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"proration_date" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationDate PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transfer_data" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"trial_end" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"trial_from_plan" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialFromPlan PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"add_invoice_items" Text
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"application_fee_percent" Text -> Maybe Double -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Double
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyApplicationFeePercent PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"automatic_tax" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_cycle_anchor" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_thresholds" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cancel_at" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cancel_at_period_end" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAtPeriodEnd PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"collection_method" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"coupon" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCoupon PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"days_until_due" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDaysUntilDue PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_payment_method" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultPaymentMethod PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_source" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultSource PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_tax_rates" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"expand" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe [Text]
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyExpand PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"items" Text
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"off_session" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyOffSession PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"pause_collection" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_behavior" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"pending_invoice_item_interval" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"promotion_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPromotionCode PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"proration_behavior" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"proration_date" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationDate PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"transfer_data" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"trial_end" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"trial_from_plan" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialFromPlan PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
obj))))))))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody" (\Object
obj -> ((((((((((((((((((((((((((Maybe
   [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
 -> Maybe Double
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
 -> Maybe Bool
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
 -> Maybe [Text]
 -> Maybe
      [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
 -> Maybe Bool
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
 -> Maybe Text
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
 -> Maybe Int
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
 -> Maybe Bool
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
      -> Maybe Double
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
-> Maybe Double
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> Maybe Bool
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> Maybe [Text]
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> Maybe Bool
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> Maybe Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Maybe Int
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Maybe Bool
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody Parser
  (Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
   -> Maybe Double
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'])
-> Parser
     (Maybe Double
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"add_invoice_items")) Parser
  (Maybe Double
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe Double)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"application_fee_percent")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"automatic_tax")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_cycle_anchor")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_thresholds")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants)
-> Parser
     (Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"cancel_at")) Parser
  (Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe Bool)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"cancel_at_period_end")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod')
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"collection_method")) Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"coupon")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"days_until_due")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_payment_method")) Parser
  (Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
      -> Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_source")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
   -> Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants)
-> Parser
     (Maybe [Text]
      -> Maybe
           [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_tax_rates")) Parser
  (Maybe [Text]
   -> Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"expand")) Parser
  (Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'])
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
      -> Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"items")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
   -> Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants)
-> Parser
     (Maybe Bool
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe Bool
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe Bool)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"off_session")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"pause_collection")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_behavior")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants)
-> Parser
     (Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"pending_invoice_item_interval")) Parser
  (Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"promotion_code")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior')
-> Parser
     (Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"proration_behavior")) Parser
  (Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe Int)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"proration_date")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"transfer_data")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants)
-> Parser
     (Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"trial_end")) Parser
  (Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody)
-> Parser (Maybe Bool)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"trial_from_plan"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody :: Maybe
  [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
-> Maybe Double
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> Maybe Bool
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> Maybe [Text]
-> Maybe
     [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> Maybe Bool
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> Maybe Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Maybe Int
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Maybe Bool
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBody
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems :: Maybe
  [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems = Maybe
  [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyApplicationFeePercent :: Maybe Double
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyApplicationFeePercent = Maybe Double
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAtPeriodEnd :: Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAtPeriodEnd = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCoupon :: Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCoupon = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDaysUntilDue :: Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDaysUntilDue = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultPaymentMethod :: Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultPaymentMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultSource :: Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultSource = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyExpand :: Maybe [Text]
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems :: Maybe
  [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems = Maybe
  [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyOffSession :: Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyOffSession = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPromotionCode :: Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPromotionCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationDate :: Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationDate = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialFromPlan :: Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialFromPlan = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.add_invoice_items.items@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems' = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
  { -- | price
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'Price :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | price_data
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'),
    -- | quantity
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'Quantity :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | tax_rates
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants)
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"price" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'Price PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"price_data" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"quantity" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'Quantity PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_rates" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"price" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'Price PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"price_data" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"quantity" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'Quantity PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tax_rates" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems')
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'" (\Object
obj -> ((((Maybe Text
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
 -> Maybe Int
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems')
-> Parser
     (Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe Int
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems' Parser
  (Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"price")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
-> Parser
     (Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"price_data")) Parser
  (Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems')
-> Parser (Maybe Int)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"quantity")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_rates"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems' :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems' :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems' =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems' :: Maybe Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe Int
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'Price :: Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'Price = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'Quantity :: Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'Quantity = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.add_invoice_items.items.properties.price_data@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData' = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
  { -- | currency
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Currency :: Data.Text.Internal.Text,
    -- | product
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Product :: Data.Text.Internal.Text,
    -- | tax_behavior
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'),
    -- | unit_amount
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'UnitAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | unit_amount_decimal
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'UnitAmountDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"currency" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Currency PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"product" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Product PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_behavior" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"unit_amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'UnitAmount PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"unit_amount_decimal" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'UnitAmountDecimal PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"currency" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Currency PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"product" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Product PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_behavior" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"unit_amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'UnitAmount PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"unit_amount_decimal" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'UnitAmountDecimal PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'" (\Object
obj -> (((((Text
 -> Text
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
 -> Maybe Int
 -> Maybe Text
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
-> Parser
     (Text
      -> Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData' Parser
  (Text
   -> Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
-> Parser Text
-> Parser
     (Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"currency")) Parser
  (Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
-> Parser Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"product")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_behavior")) Parser
  (Maybe Int
   -> Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"unit_amount")) Parser
  (Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData')
-> Parser (Maybe Text)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"unit_amount_decimal"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData' ::
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Currency'
  Data.Text.Internal.Text ->
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Product'
  Data.Text.Internal.Text ->
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData' :: Text
-> Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData' Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Currency Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Product =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData' :: Text
-> Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Currency :: Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Currency = Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Currency,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Product :: Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Product = Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'Product,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'UnitAmount :: Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'UnitAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'UnitAmountDecimal :: Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'UnitAmountDecimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.add_invoice_items.items.properties.price_data.properties.tax_behavior@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"exclusive"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'EnumExclusive
  | -- | Represents the JSON value @"inclusive"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'EnumInclusive
  | -- | Represents the JSON value @"unspecified"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'EnumUnspecified
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'Other Value
val) = Value
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'EnumExclusive) = Value
"exclusive"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'EnumInclusive) = Value
"inclusive"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'EnumUnspecified) = Value
"unspecified"

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
parseJSON Value
val =
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"exclusive" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'EnumExclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"inclusive" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'EnumInclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unspecified" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'EnumUnspecified
            | Bool
GHC.Base.otherwise -> Value
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'PriceData'TaxBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.add_invoice_items.items.properties.tax_rates.anyOf@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'ListTText [Text]
a) = [Text] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON [Text]
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'EmptyString
        | Bool
GHC.Base.otherwise -> case ([Text]
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'ListTText ([Text]
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants)
-> Result [Text]
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result [Text]
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
a -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAddInvoiceItems'TaxRates'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.automatic_tax@ in the specification.
--
-- Automatic tax settings for this subscription.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax' = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
  { -- | enabled
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'Enabled :: GHC.Types.Bool
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"enabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'Enabled PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"enabled" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
-> Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'Enabled PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax')
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'" (\Object
obj -> (Bool
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax')
-> Parser
     (Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Bool
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax' Parser
  (Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax')
-> Parser Bool
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"enabled"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax' ::
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'Enabled'
  GHC.Types.Bool ->
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax' :: Bool
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax' Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'Enabled = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax' :: Bool
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax' {postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'Enabled :: Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'Enabled = Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyAutomaticTax'Enabled}

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.billing_cycle_anchor@ in the specification.
--
-- Either \`now\` or \`unchanged\`. Setting the value to \`now\` resets the subscription\'s billing cycle anchor to the current time. For more information, see the billing cycle [documentation](https:\/\/stripe.com\/docs\/billing\/subscriptions\/billing-cycle).
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"now"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'EnumNow
  | -- | Represents the JSON value @"unchanged"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'EnumUnchanged
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'Other Value
val) = Value
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'EnumNow) = Value
"now"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'EnumUnchanged) = Value
"unchanged"

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
parseJSON Value
val =
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"now" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'EnumNow
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unchanged" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'EnumUnchanged
            | Bool
GHC.Base.otherwise -> Value
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingCycleAnchor'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.billing_thresholds.anyOf@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1 = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
  { -- | amount_gte
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1AmountGte :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | reset_billing_cycle_anchor
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1ResetBillingCycleAnchor :: (GHC.Maybe.Maybe GHC.Types.Bool)
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1 where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount_gte" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1AmountGte PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"reset_billing_cycle_anchor" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1ResetBillingCycleAnchor PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount_gte" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1AmountGte PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"reset_billing_cycle_anchor" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1ResetBillingCycleAnchor PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1 where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1)
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1" (\Object
obj -> ((Maybe Int
 -> Maybe Bool
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1)
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Bool
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1 Parser
  (Maybe Int
   -> Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount_gte")) Parser
  (Maybe Bool
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1)
-> Parser (Maybe Bool)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"reset_billing_cycle_anchor"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1 :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1 :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1 =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1 :: Maybe Int
-> Maybe Bool
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1AmountGte :: Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1AmountGte = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1ResetBillingCycleAnchor :: Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1ResetBillingCycleAnchor = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.billing_thresholds.anyOf@ in the specification.
--
-- Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
a) = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'OneOf1
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyBillingThresholds'EmptyString) = Value
""

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

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.cancel_at.anyOf@ in the specification.
--
-- A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using \`proration_behavior\`. If set during a future period, this will always cause a proration for that period.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Int GHC.Types.Int
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Int Int
a) = Int -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Int
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCancelAt'EmptyString) = Value
""

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

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.collection_method@ in the specification.
--
-- 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. Defaults to \`charge_automatically\`.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"charge_automatically"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'EnumChargeAutomatically
  | -- | Represents the JSON value @"send_invoice"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'EnumSendInvoice
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'Other Value
val) = Value
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'EnumChargeAutomatically) = Value
"charge_automatically"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'EnumSendInvoice) = Value
"send_invoice"

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
parseJSON Value
val =
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"charge_automatically" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'EnumChargeAutomatically
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"send_invoice" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'EnumSendInvoice
            | Bool
GHC.Base.otherwise -> Value
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyCollectionMethod'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_tax_rates.anyOf@ in the specification.
--
-- 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. Pass an empty string to remove previously-defined tax rates.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'ListTText [Text]
a) = [Text] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON [Text]
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyDefaultTaxRates'EmptyString) = Value
""

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

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.items.items@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems' = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
  { -- | billing_thresholds
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants),
    -- | clear_usage
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'ClearUsage :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | deleted
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Deleted :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | id
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Id :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | metadata
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants),
    -- | price
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Price :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | price_data
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'),
    -- | quantity
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Quantity :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | tax_rates
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants)
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"billing_thresholds" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"clear_usage" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'ClearUsage PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"deleted" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Deleted PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Id PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"price" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Price PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"price_data" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"quantity" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Quantity PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_rates" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"billing_thresholds" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"clear_usage" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'ClearUsage PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"deleted" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Deleted PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Id PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"price" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Price PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"price_data" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"quantity" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Quantity PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tax_rates" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
obj)))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'" (\Object
obj -> (((((((((Maybe
   PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
 -> Maybe Text
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
 -> Maybe Int
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Maybe Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe Int
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems' Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_thresholds")) Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"clear_usage")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"deleted")) Parser
  (Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"id")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants)
-> Parser
     (Maybe Text
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe Text
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"price")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
-> Parser
     (Maybe Int
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"price_data")) Parser
  (Maybe Int
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Parser (Maybe Int)
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"quantity")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_rates"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems' :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems' :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems' =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems' :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Maybe Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe Int
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'ClearUsage :: Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'ClearUsage = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Deleted :: Maybe Bool
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Deleted = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Id :: Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Price :: Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Price = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Quantity :: Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Quantity = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.items.items.properties.billing_thresholds.anyOf@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
  { -- | usage_gte
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1UsageGte :: GHC.Types.Int
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"usage_gte" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1UsageGte PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"usage_gte" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1UsageGte PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1)
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1" (\Object
obj -> (Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1)
-> Parser
     (Int
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 Parser
  (Int
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1)
-> Parser Int
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"usage_gte"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 ::
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1UsageGte'
  GHC.Types.Int ->
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1UsageGte = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 {postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1UsageGte :: Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1UsageGte = Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1UsageGte}

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.items.items.properties.billing_thresholds.anyOf@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
a) = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'EmptyString
        | Bool
GHC.Base.otherwise -> case (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1 (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants)
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'OneOf1
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
a -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'BillingThresholds'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.items.items.properties.metadata.anyOf@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Object Data.Aeson.Types.Internal.Object
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Object Object
a) = Object -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Object
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'EmptyString
        | Bool
GHC.Base.otherwise -> case (Object
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Object (Object
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants)
-> Result Object
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Object
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
a -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'Metadata'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.items.items.properties.price_data@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData' = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
  { -- | currency
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Currency :: Data.Text.Internal.Text,
    -- | product
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Product :: Data.Text.Internal.Text,
    -- | recurring
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring',
    -- | tax_behavior
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior :: (GHC.Maybe.Maybe PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'),
    -- | unit_amount
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'UnitAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | unit_amount_decimal
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'UnitAmountDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"currency" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Currency PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"product" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Product PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"recurring" Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_behavior" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"unit_amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'UnitAmount PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"unit_amount_decimal" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'UnitAmountDecimal PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"currency" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Currency PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"product" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Product PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"recurring" Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_behavior" Text
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"unit_amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'UnitAmount PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"unit_amount_decimal" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
-> Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'UnitAmountDecimal PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'" (\Object
obj -> ((((((Text
 -> Text
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
 -> Maybe
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
 -> Maybe Int
 -> Maybe Text
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
-> Parser
     (Text
      -> Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData' Parser
  (Text
   -> Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
-> Parser Text
-> Parser
     (Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"currency")) Parser
  (Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
-> Parser Text
-> Parser
     (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
      -> Maybe
           PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"product")) Parser
  (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
   -> Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"recurring")) Parser
  (Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_behavior")) Parser
  (Maybe Int
   -> Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"unit_amount")) Parser
  (Maybe Text
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData')
-> Parser (Maybe Text)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"unit_amount_decimal"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData' ::
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Currency'
  Data.Text.Internal.Text ->
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Product'
  Data.Text.Internal.Text ->
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring' ->
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData' :: Text
-> Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData' Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Currency Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Product PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData' :: Text
-> Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Maybe
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Currency :: Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Currency = Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Currency,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Product :: Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Product = Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Product,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior :: Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior = Maybe
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'UnitAmount :: Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'UnitAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'UnitAmountDecimal :: Maybe Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'UnitAmountDecimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.items.items.properties.price_data.properties.recurring@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring' = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
  { -- | interval
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval',
    -- | interval_count
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'IntervalCount :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"interval" Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"interval_count" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'IntervalCount PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"interval" Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"interval_count" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'IntervalCount PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring')
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'" (\Object
obj -> ((PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
 -> Maybe Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring')
-> Parser
     (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
      -> Maybe Int
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Maybe Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring' Parser
  (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
   -> Maybe Int
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring')
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Parser
     (Maybe Int
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"interval")) Parser
  (Maybe Int
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring')
-> Parser (Maybe Int)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"interval_count"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring' ::
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval' ->
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring' :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring' PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring' :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Maybe Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'IntervalCount :: Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'IntervalCount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.items.items.properties.price_data.properties.recurring.properties.interval@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"day"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumDay
  | -- | Represents the JSON value @"month"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumMonth
  | -- | Represents the JSON value @"week"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumWeek
  | -- | Represents the JSON value @"year"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumYear
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'Other Value
val) = Value
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumDay) = Value
"day"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumMonth) = Value
"month"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumWeek) = Value
"week"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumYear) = Value
"year"

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
parseJSON Value
val =
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"day" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumDay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"month" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumMonth
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"week" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumWeek
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"year" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'EnumYear
            | Bool
GHC.Base.otherwise -> Value
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'Recurring'Interval'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.items.items.properties.price_data.properties.tax_behavior@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"exclusive"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'EnumExclusive
  | -- | Represents the JSON value @"inclusive"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'EnumInclusive
  | -- | Represents the JSON value @"unspecified"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'EnumUnspecified
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'Other Value
val) = Value
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'EnumExclusive) = Value
"exclusive"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'EnumInclusive) = Value
"inclusive"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'EnumUnspecified) = Value
"unspecified"

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
parseJSON Value
val =
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"exclusive" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'EnumExclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"inclusive" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'EnumInclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unspecified" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'EnumUnspecified
            | Bool
GHC.Base.otherwise -> Value
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'PriceData'TaxBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.items.items.properties.tax_rates.anyOf@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'ListTText [Text]
a) = [Text] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON [Text]
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'EmptyString
        | Bool
GHC.Base.otherwise -> case ([Text]
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'ListTText ([Text]
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants)
-> Result [Text]
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result [Text]
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
a -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyItems'TaxRates'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.metadata.anyOf@ in the specification.
--
-- Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Object Data.Aeson.Types.Internal.Object
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Object Object
a) = Object -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Object
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyMetadata'EmptyString) = Value
""

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

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.pause_collection.anyOf@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1 = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
  { -- | behavior
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior',
    -- | resumes_at
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1ResumesAt :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1 where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"behavior" Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"resumes_at" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1ResumesAt PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"behavior" Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"resumes_at" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1ResumesAt PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1 where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1)
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1" (\Object
obj -> ((PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
 -> Maybe Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1)
-> Parser
     (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
      -> Maybe Int
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Maybe Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1 Parser
  (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
   -> Maybe Int
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Parser
     (Maybe Int
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"behavior")) Parser
  (Maybe Int
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1)
-> Parser (Maybe Int)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"resumes_at"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1 ::
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior' ->
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1 :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1 :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Maybe Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1ResumesAt :: Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1ResumesAt = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.pause_collection.anyOf.properties.behavior@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"keep_as_draft"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'EnumKeepAsDraft
  | -- | Represents the JSON value @"mark_uncollectible"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'EnumMarkUncollectible
  | -- | Represents the JSON value @"void"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'EnumVoid
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'Other Value
val) = Value
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'EnumKeepAsDraft) = Value
"keep_as_draft"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'EnumMarkUncollectible) = Value
"mark_uncollectible"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'EnumVoid) = Value
"void"

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
parseJSON Value
val =
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"keep_as_draft" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'EnumKeepAsDraft
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"mark_uncollectible" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'EnumMarkUncollectible
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"void" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'EnumVoid
            | Bool
GHC.Base.otherwise -> Value
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1Behavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.pause_collection.anyOf@ in the specification.
--
-- If specified, payment collection for this subscription will be paused.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
a) = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'OneOf1
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPauseCollection'EmptyString) = Value
""

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

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_behavior@ in the specification.
--
-- Use \`allow_incomplete\` to transition the subscription to \`status=past_due\` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription\'s invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https:\/\/stripe.com\/docs\/billing\/migration\/strong-customer-authentication) for Billing to learn more. This is the default behavior.
--
-- Use \`default_incomplete\` to transition the subscription to \`status=past_due\` when payment is required and await explicit confirmation of the invoice\'s payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription’s invoice. Such as failed payments, [SCA regulation](https:\/\/stripe.com\/docs\/billing\/migration\/strong-customer-authentication), or collecting a mandate for a bank debit payment method.
--
-- Use \`pending_if_incomplete\` to update the subscription using [pending updates](https:\/\/stripe.com\/docs\/billing\/subscriptions\/pending-updates). When you use \`pending_if_incomplete\` you can only pass the parameters [supported by pending updates](https:\/\/stripe.com\/docs\/billing\/pending-updates-reference\#supported-attributes).
--
-- Use \`error_if_incomplete\` if you want Stripe to return an HTTP 402 status code if a subscription\'s invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https:\/\/stripe.com\/docs\/upgrades\#2019-03-14) to learn more.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"allow_incomplete"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumAllowIncomplete
  | -- | Represents the JSON value @"default_incomplete"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumDefaultIncomplete
  | -- | Represents the JSON value @"error_if_incomplete"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumErrorIfIncomplete
  | -- | Represents the JSON value @"pending_if_incomplete"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumPendingIfIncomplete
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'Other Value
val) = Value
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumAllowIncomplete) = Value
"allow_incomplete"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumDefaultIncomplete) = Value
"default_incomplete"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumErrorIfIncomplete) = Value
"error_if_incomplete"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumPendingIfIncomplete) = Value
"pending_if_incomplete"

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
parseJSON Value
val =
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"allow_incomplete" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumAllowIncomplete
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"default_incomplete" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumDefaultIncomplete
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"error_if_incomplete" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumErrorIfIncomplete
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pending_if_incomplete" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'EnumPendingIfIncomplete
            | Bool
GHC.Base.otherwise -> Value
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPaymentBehavior'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.pending_invoice_item_interval.anyOf@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1 = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
  { -- | interval
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval',
    -- | interval_count
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1IntervalCount :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1 where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"interval" Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"interval_count" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1IntervalCount PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"interval" Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"interval_count" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1IntervalCount PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1 where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1)
-> Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1" (\Object
obj -> ((PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
 -> Maybe Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1)
-> Parser
     (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
      -> Maybe Int
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Maybe Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1 Parser
  (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
   -> Maybe Int
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Parser
     (Maybe Int
      -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"interval")) Parser
  (Maybe Int
   -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1)
-> Parser (Maybe Int)
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"interval_count"))

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1 ::
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval' ->
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1 :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1 :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Maybe Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1IntervalCount :: Maybe Int
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1IntervalCount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.pending_invoice_item_interval.anyOf.properties.interval@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"day"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumDay
  | -- | Represents the JSON value @"month"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumMonth
  | -- | Represents the JSON value @"week"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumWeek
  | -- | Represents the JSON value @"year"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumYear
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'Other Value
val) = Value
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumDay) = Value
"day"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumMonth) = Value
"month"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumWeek) = Value
"week"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumYear) = Value
"year"

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
parseJSON Value
val =
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"day" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumDay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"month" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumMonth
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"week" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumWeek
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"year" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'EnumYear
            | Bool
GHC.Base.otherwise -> Value
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1Interval'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.pending_invoice_item_interval.anyOf@ in the specification.
--
-- 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 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
a) = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'OneOf1
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyPendingInvoiceItemInterval'EmptyString) = Value
""

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

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.proration_behavior@ in the specification.
--
-- Determines how to handle [prorations](https:\/\/stripe.com\/docs\/subscriptions\/billing-cycle\#prorations) when the billing cycle changes (e.g., when switching plans, resetting \`billing_cycle_anchor=now\`, or starting a trial), or if an item\'s \`quantity\` changes. Valid values are \`create_prorations\`, \`none\`, or \`always_invoice\`.
--
-- Passing \`create_prorations\` will cause proration invoice items to be created when applicable. These proration items will only be invoiced immediately under [certain conditions](https:\/\/stripe.com\/docs\/subscriptions\/upgrading-downgrading\#immediate-payment). In order to always invoice immediately for prorations, pass \`always_invoice\`.
--
-- Prorations can be disabled by passing \`none\`.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"always_invoice"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'EnumAlwaysInvoice
  | -- | Represents the JSON value @"create_prorations"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'EnumCreateProrations
  | -- | Represents the JSON value @"none"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'EnumNone
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior']
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior']
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior']
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior']
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior' where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'Other Value
val) = Value
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'EnumAlwaysInvoice) = Value
"always_invoice"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'EnumCreateProrations) = Value
"create_prorations"
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'EnumNone) = Value
"none"

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior' where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
parseJSON Value
val =
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"always_invoice" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'EnumAlwaysInvoice
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"create_prorations" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'EnumCreateProrations
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'EnumNone
            | Bool
GHC.Base.otherwise -> Value
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyProrationBehavior'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.transfer_data.anyOf@ in the specification.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1 = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
  { -- | amount_percent
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Maybe Double
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1AmountPercent :: (GHC.Maybe.Maybe GHC.Types.Double),
    -- | destination
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1Destination :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1 where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Value
toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount_percent" Text -> Maybe Double -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Maybe Double
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1AmountPercent PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"destination" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1Destination PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Encoding
toEncoding PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount_percent" Text -> Maybe Double -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Maybe Double
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1AmountPercent PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"destination" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1Destination PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
obj))

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

-- | Create a new 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1' with all required fields.
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1 ::
  -- | 'postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1Destination'
  Data.Text.Internal.Text ->
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1 :: Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
mkPostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1 Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1Destination =
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1 :: Maybe Double
-> Text
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
    { postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1AmountPercent :: Maybe Double
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1AmountPercent = Maybe Double
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1Destination :: Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1Destination = Text
postCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1Destination
    }

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.transfer_data.anyOf@ in the specification.
--
-- If specified, the funds from the subscription\'s invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. This will be unset if you POST an empty value.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'EmptyString
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1 PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
a) = PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'OneOf1
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTransferData'EmptyString) = Value
""

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

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/subscriptions\/{subscription_exposed_id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.trial_end.anyOf@ in the specification.
--
-- Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value \`now\` can be provided to end the customer\'s trial immediately. Can be at most two years from \`billing_cycle_anchor\`.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
  = -- | Represents the JSON value @"now"@
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Now
  | PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Int GHC.Types.Int
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants where
  toJSON :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Value
toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Int Int
a) = Int -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Int
a
  toJSON (PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Now) = Value
"now"

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants where
  parseJSON :: Value
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"now" -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Now
        | Bool
GHC.Base.otherwise -> case (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Int (Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants)
-> Result Int
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Int
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
a -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdRequestBodyTrialEnd'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Represents a response of the operation 'postCustomersCustomerSubscriptionsSubscriptionExposedId'.
--
-- The response constructor is chosen by the status code of the response. If no case matches (no specific case for the response code, no range case, no default case), 'PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponseError' is used.
data PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
  = -- | Means either no matching case available or a parse error
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponseError GHC.Base.String
  | -- | Successful response.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse200 Subscription
  | -- | Error response.
    PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponseDefault Error
  deriving (Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> String
-> String
[PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse]
-> String -> String
PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> String
(Int
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
 -> String
 -> String)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
    -> String)
-> ([PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse]
    -> String -> String)
-> Show
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse]
-> String -> String
$cshowList :: [PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse]
-> String -> String
show :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> String
$cshow :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> String
showsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> String
-> String
GHC.Show.Show, PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> Bool
(PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
 -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
 -> Bool)
-> (PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
    -> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
    -> Bool)
-> Eq
     PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> Bool
$c/= :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> Bool
== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> Bool
$c== :: PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> PostCustomersCustomerSubscriptionsSubscriptionExposedIdResponse
-> Bool
GHC.Classes.Eq)