{-# 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 getInvoicesUpcoming
module StripeAPI.Operations.GetInvoicesUpcoming 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

-- | > GET /v1/invoices/upcoming
--
-- \<p>At any time, you can preview the upcoming invoice for a customer. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.\<\/p>
--
-- \<p>Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer’s discount.\<\/p>
--
-- \<p>You can preview the effects of updating a subscription, including a preview of what proration will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass a \<code>proration_date\<\/code> parameter when doing the actual subscription update. The value passed in should be the same as the \<code>subscription_proration_date\<\/code> returned on the upcoming invoice resource. The recommended way to get only the prorations being previewed is to consider only proration line items where \<code>period[start]\<\/code> is equal to the \<code>subscription_proration_date\<\/code> on the upcoming invoice resource.\<\/p>
getInvoicesUpcoming ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | Contains all available parameters of this operation (query and path parameters)
  GetInvoicesUpcomingParameters ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response GetInvoicesUpcomingResponse)
getInvoicesUpcoming :: GetInvoicesUpcomingParameters
-> ClientT m (Response GetInvoicesUpcomingResponse)
getInvoicesUpcoming GetInvoicesUpcomingParameters
parameters =
  (Response ByteString -> Response GetInvoicesUpcomingResponse)
-> ClientT m (Response ByteString)
-> ClientT m (Response GetInvoicesUpcomingResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
    ( \Response ByteString
response_0 ->
        (ByteString -> GetInvoicesUpcomingResponse)
-> Response ByteString -> Response GetInvoicesUpcomingResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
          ( (String -> GetInvoicesUpcomingResponse)
-> (GetInvoicesUpcomingResponse -> GetInvoicesUpcomingResponse)
-> Either String GetInvoicesUpcomingResponse
-> GetInvoicesUpcomingResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> GetInvoicesUpcomingResponse
GetInvoicesUpcomingResponseError GetInvoicesUpcomingResponse -> GetInvoicesUpcomingResponse
forall a. a -> a
GHC.Base.id
              (Either String GetInvoicesUpcomingResponse
 -> GetInvoicesUpcomingResponse)
-> (ByteString -> Either String GetInvoicesUpcomingResponse)
-> ByteString
-> GetInvoicesUpcomingResponse
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) ->
                                   Invoice -> GetInvoicesUpcomingResponse
GetInvoicesUpcomingResponse200
                                     (Invoice -> GetInvoicesUpcomingResponse)
-> Either String Invoice
-> Either String GetInvoicesUpcomingResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String Invoice
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            Invoice
                                                      )
                                 | 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 -> GetInvoicesUpcomingResponse
GetInvoicesUpcomingResponseDefault
                                     (Error -> GetInvoicesUpcomingResponse)
-> Either String Error -> Either String GetInvoicesUpcomingResponse
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 GetInvoicesUpcomingResponse
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] -> ClientT m (Response ByteString)
forall (m :: * -> *).
MonadHTTP m =>
Text -> Text -> [QueryParameter] -> ClientT m (Response ByteString)
StripeAPI.Common.doCallWithConfigurationM
        (Text -> Text
Data.Text.toUpper (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
GHC.Base.$ String -> Text
Data.Text.pack String
"GET")
        (String -> Text
Data.Text.pack String
"/v1/invoices/upcoming")
        [ Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"automatic_tax") (GetInvoicesUpcomingParametersQueryAutomaticTax' -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesUpcomingParametersQueryAutomaticTax' -> Value)
-> Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
-> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
getInvoicesUpcomingParametersQueryAutomaticTax GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"coupon") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQueryCoupon GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"customer") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQueryCustomer GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"customer_details") (GetInvoicesUpcomingParametersQueryCustomerDetails' -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails' -> Value)
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
getInvoicesUpcomingParametersQueryCustomerDetails GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"discounts") (GetInvoicesUpcomingParametersQueryDiscounts'Variants -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesUpcomingParametersQueryDiscounts'Variants -> Value)
-> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
-> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
getInvoicesUpcomingParametersQueryDiscounts GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"expand") ([Text] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON ([Text] -> Value) -> Maybe [Text] -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters -> Maybe [Text]
getInvoicesUpcomingParametersQueryExpand GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"invoice_items") ([GetInvoicesUpcomingParametersQueryInvoiceItems'] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON ([GetInvoicesUpcomingParametersQueryInvoiceItems'] -> Value)
-> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
-> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters
-> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
getInvoicesUpcomingParametersQueryInvoiceItems GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"schedule") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQuerySchedule GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQuerySubscription GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_billing_cycle_anchor") (GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
 -> Value)
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
getInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_cancel_at") (GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
 -> Value)
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
getInvoicesUpcomingParametersQuerySubscriptionCancelAt GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_cancel_at_period_end") (Bool -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Bool -> Value) -> Maybe Bool -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionCancelAtPeriodEnd GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_cancel_now") (Bool -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Bool -> Value) -> Maybe Bool -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionCancelNow GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_default_tax_rates") (GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
 -> Value)
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
getInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_items") ([GetInvoicesUpcomingParametersQuerySubscriptionItems'] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON ([GetInvoicesUpcomingParametersQuerySubscriptionItems'] -> Value)
-> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
-> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters
-> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
getInvoicesUpcomingParametersQuerySubscriptionItems GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_proration_behavior") (GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
 -> Value)
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
getInvoicesUpcomingParametersQuerySubscriptionProrationBehavior GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_proration_date") (Int -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Int -> Value) -> Maybe Int -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters -> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionProrationDate GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_start_date") (Int -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Int -> Value) -> Maybe Int -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters -> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionStartDate GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_trial_end") (GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
 -> Value)
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
getInvoicesUpcomingParametersQuerySubscriptionTrialEnd GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription_trial_from_plan") (Bool -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Bool -> Value) -> Maybe Bool -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionTrialFromPlan GetInvoicesUpcomingParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True
        ]
    )

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters@ in the specification.
data GetInvoicesUpcomingParameters = GetInvoicesUpcomingParameters
  { -- | queryAutomatic_tax: Represents the parameter named \'automatic_tax\'
    --
    -- Settings for automatic tax lookup for this invoice preview.
    GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
getInvoicesUpcomingParametersQueryAutomaticTax :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'),
    -- | queryCoupon: Represents the parameter named \'coupon\'
    --
    -- The code of the coupon to apply. If \`subscription\` or \`subscription_items\` is provided, the invoice returned will preview updating or creating a subscription with that coupon. Otherwise, it will preview applying that coupon to the customer for the next upcoming invoice from among the customer\'s subscriptions. The invoice can be previewed without a coupon by passing this value as an empty string.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQueryCoupon :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | queryCustomer: Represents the parameter named \'customer\'
    --
    -- The identifier of the customer whose upcoming invoice you\'d like to retrieve.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQueryCustomer :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | queryCustomer_details: Represents the parameter named \'customer_details\'
    --
    -- Details about the customer you want to invoice
    GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
getInvoicesUpcomingParametersQueryCustomerDetails :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'),
    -- | queryDiscounts: Represents the parameter named \'discounts\'
    --
    -- The coupons to redeem into discounts for the invoice preview. If not specified, inherits the discount from the customer or subscription. Pass an empty string to avoid inheriting any discounts. To preview the upcoming invoice for a subscription that hasn\'t been created, use \`coupon\` instead.
    GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
getInvoicesUpcomingParametersQueryDiscounts :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants),
    -- | queryExpand: Represents the parameter named \'expand\'
    --
    -- Specifies which fields in the response should be expanded.
    GetInvoicesUpcomingParameters -> Maybe [Text]
getInvoicesUpcomingParametersQueryExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | queryInvoice_items: Represents the parameter named \'invoice_items\'
    --
    -- List of invoice items to add or update in the upcoming invoice preview.
    GetInvoicesUpcomingParameters
-> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
getInvoicesUpcomingParametersQueryInvoiceItems :: (GHC.Maybe.Maybe ([GetInvoicesUpcomingParametersQueryInvoiceItems'])),
    -- | querySchedule: Represents the parameter named \'schedule\'
    --
    -- The identifier of the unstarted schedule whose upcoming invoice you\'d like to retrieve. Cannot be used with subscription or subscription fields.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQuerySchedule :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | querySubscription: Represents the parameter named \'subscription\'
    --
    -- The identifier of the subscription for which you\'d like to retrieve the upcoming invoice. If not provided, but a \`subscription_items\` is provided, you will preview creating a subscription with those items. If neither \`subscription\` nor \`subscription_items\` is provided, you will retrieve the next upcoming invoice from among the customer\'s subscriptions.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQuerySubscription :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | querySubscription_billing_cycle_anchor: Represents the parameter named \'subscription_billing_cycle_anchor\'
    --
    -- For new subscriptions, a future timestamp to anchor the subscription\'s [billing cycle](https:\/\/stripe.com\/docs\/subscriptions\/billing-cycle). This is used to determine the date of the first full invoice, and, for plans with \`month\` or \`year\` intervals, the day of the month for subsequent invoices. For existing subscriptions, the value can only be set to \`now\` or \`unchanged\`.
    GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
getInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants),
    -- | querySubscription_cancel_at: Represents the parameter named \'subscription_cancel_at\'
    --
    -- Timestamp indicating when the subscription should be scheduled to cancel. Will prorate if within the current period and prorations have been enabled using \`proration_behavior\`.
    GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
getInvoicesUpcomingParametersQuerySubscriptionCancelAt :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants),
    -- | querySubscription_cancel_at_period_end: Represents the parameter named \'subscription_cancel_at_period_end\'
    --
    -- Boolean indicating whether this subscription should cancel at the end of the current period.
    GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionCancelAtPeriodEnd :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | querySubscription_cancel_now: Represents the parameter named \'subscription_cancel_now\'
    --
    -- This simulates the subscription being canceled or expired immediately.
    GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionCancelNow :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | querySubscription_default_tax_rates: Represents the parameter named \'subscription_default_tax_rates\'
    --
    -- If provided, the invoice returned will preview updating or creating a subscription with these default tax rates. The default tax rates will apply to any line item that does not have \`tax_rates\` set.
    GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
getInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants),
    -- | querySubscription_items: Represents the parameter named \'subscription_items\'
    --
    -- A list of up to 20 subscription items, each with an attached price.
    GetInvoicesUpcomingParameters
-> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
getInvoicesUpcomingParametersQuerySubscriptionItems :: (GHC.Maybe.Maybe ([GetInvoicesUpcomingParametersQuerySubscriptionItems'])),
    -- | querySubscription_proration_behavior: Represents the parameter named \'subscription_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\`.
    GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
getInvoicesUpcomingParametersQuerySubscriptionProrationBehavior :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'),
    -- | querySubscription_proration_date: Represents the parameter named \'subscription_proration_date\'
    --
    -- If previewing an update to a subscription, and doing proration, \`subscription_proration_date\` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period, and cannot be before the subscription was on its current plan. If set, \`subscription\`, and one of \`subscription_items\`, or \`subscription_trial_end\` are required. Also, \`subscription_proration_behavior\` cannot be set to \'none\'.
    GetInvoicesUpcomingParameters -> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionProrationDate :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | querySubscription_start_date: Represents the parameter named \'subscription_start_date\'
    --
    -- Date a subscription is intended to start (can be future or past)
    GetInvoicesUpcomingParameters -> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionStartDate :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | querySubscription_trial_end: Represents the parameter named \'subscription_trial_end\'
    --
    -- If provided, the invoice returned will preview updating or creating a subscription with that trial end. If set, one of \`subscription_items\` or \`subscription\` is required.
    GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
getInvoicesUpcomingParametersQuerySubscriptionTrialEnd :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants),
    -- | querySubscription_trial_from_plan: Represents the parameter named \'subscription_trial_from_plan\'
    --
    -- Indicates if a plan\'s \`trial_period_days\` should be applied to the subscription. Setting \`subscription_trial_end\` per subscription is preferred, and this defaults to \`false\`. Setting this flag to \`true\` together with \`subscription_trial_end\` is not allowed.
    GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionTrialFromPlan :: (GHC.Maybe.Maybe GHC.Types.Bool)
  }
  deriving
    ( Int -> GetInvoicesUpcomingParameters -> ShowS
[GetInvoicesUpcomingParameters] -> ShowS
GetInvoicesUpcomingParameters -> String
(Int -> GetInvoicesUpcomingParameters -> ShowS)
-> (GetInvoicesUpcomingParameters -> String)
-> ([GetInvoicesUpcomingParameters] -> ShowS)
-> Show GetInvoicesUpcomingParameters
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParameters] -> ShowS
$cshowList :: [GetInvoicesUpcomingParameters] -> ShowS
show :: GetInvoicesUpcomingParameters -> String
$cshow :: GetInvoicesUpcomingParameters -> String
showsPrec :: Int -> GetInvoicesUpcomingParameters -> ShowS
$cshowsPrec :: Int -> GetInvoicesUpcomingParameters -> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParameters
-> GetInvoicesUpcomingParameters -> Bool
(GetInvoicesUpcomingParameters
 -> GetInvoicesUpcomingParameters -> Bool)
-> (GetInvoicesUpcomingParameters
    -> GetInvoicesUpcomingParameters -> Bool)
-> Eq GetInvoicesUpcomingParameters
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParameters
-> GetInvoicesUpcomingParameters -> Bool
$c/= :: GetInvoicesUpcomingParameters
-> GetInvoicesUpcomingParameters -> Bool
== :: GetInvoicesUpcomingParameters
-> GetInvoicesUpcomingParameters -> Bool
$c== :: GetInvoicesUpcomingParameters
-> GetInvoicesUpcomingParameters -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParameters where
  toJSON :: GetInvoicesUpcomingParameters -> Value
toJSON GetInvoicesUpcomingParameters
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"queryAutomatic_tax" Text
-> Maybe GetInvoicesUpcomingParametersQueryAutomaticTax' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
getInvoicesUpcomingParametersQueryAutomaticTax GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryCoupon" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQueryCoupon GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryCustomer" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQueryCustomer GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryCustomer_details" Text
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
getInvoicesUpcomingParametersQueryCustomerDetails GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryDiscounts" Text
-> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
getInvoicesUpcomingParametersQueryDiscounts GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryExpand" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe [Text]
getInvoicesUpcomingParametersQueryExpand GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryInvoice_items" Text
-> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems'] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
getInvoicesUpcomingParametersQueryInvoiceItems GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySchedule" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQuerySchedule GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQuerySubscription GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_billing_cycle_anchor" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
getInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_cancel_at" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
getInvoicesUpcomingParametersQuerySubscriptionCancelAt GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_cancel_at_period_end" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionCancelAtPeriodEnd GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_cancel_now" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionCancelNow GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_default_tax_rates" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
getInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_items" Text
-> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
getInvoicesUpcomingParametersQuerySubscriptionItems GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_proration_behavior" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
getInvoicesUpcomingParametersQuerySubscriptionProrationBehavior GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_proration_date" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionProrationDate GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_start_date" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionStartDate GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_trial_end" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
getInvoicesUpcomingParametersQuerySubscriptionTrialEnd GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription_trial_from_plan" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionTrialFromPlan GetInvoicesUpcomingParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParameters -> Encoding
toEncoding GetInvoicesUpcomingParameters
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"queryAutomatic_tax" Text
-> Maybe GetInvoicesUpcomingParametersQueryAutomaticTax' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
getInvoicesUpcomingParametersQueryAutomaticTax GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryCoupon" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQueryCoupon GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryCustomer" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQueryCustomer GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryCustomer_details" Text
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
getInvoicesUpcomingParametersQueryCustomerDetails GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryDiscounts" Text
-> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
getInvoicesUpcomingParametersQueryDiscounts GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryExpand" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe [Text]
getInvoicesUpcomingParametersQueryExpand GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryInvoice_items" Text
-> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
getInvoicesUpcomingParametersQueryInvoiceItems GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySchedule" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQuerySchedule GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Text
getInvoicesUpcomingParametersQuerySubscription GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription_billing_cycle_anchor" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
getInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription_cancel_at" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
getInvoicesUpcomingParametersQuerySubscriptionCancelAt GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription_cancel_at_period_end" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionCancelAtPeriodEnd GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription_cancel_now" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionCancelNow GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription_default_tax_rates" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
getInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription_items" Text
-> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
getInvoicesUpcomingParametersQuerySubscriptionItems GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription_proration_behavior" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
getInvoicesUpcomingParametersQuerySubscriptionProrationBehavior GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription_proration_date" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionProrationDate GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription_start_date" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionStartDate GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"querySubscription_trial_end" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
getInvoicesUpcomingParametersQuerySubscriptionTrialEnd GetInvoicesUpcomingParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"querySubscription_trial_from_plan" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParameters -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionTrialFromPlan GetInvoicesUpcomingParameters
obj))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParameters where
  parseJSON :: Value -> Parser GetInvoicesUpcomingParameters
parseJSON = String
-> (Object -> Parser GetInvoicesUpcomingParameters)
-> Value
-> Parser GetInvoicesUpcomingParameters
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParameters" (\Object
obj -> ((((((((((((((((((((Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
 -> Maybe Text
 -> Maybe Text
 -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
 -> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
 -> Maybe [Text]
 -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
 -> Maybe Text
 -> Maybe Text
 -> Maybe
      GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
 -> Maybe
      GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe
      GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
 -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
 -> Maybe
      GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
 -> Maybe Int
 -> Maybe Int
 -> Maybe
      GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
 -> Maybe Bool
 -> GetInvoicesUpcomingParameters)
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
      -> Maybe Text
      -> Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
      -> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
      -> Maybe [Text]
      -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
-> Maybe Text
-> Maybe Text
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
-> Maybe [Text]
-> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
-> Maybe Text
-> Maybe Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Maybe Bool
-> Maybe Bool
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Maybe Int
-> Maybe Int
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Maybe Bool
-> GetInvoicesUpcomingParameters
GetInvoicesUpcomingParameters Parser
  (Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
   -> Maybe Text
   -> Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
   -> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
   -> Maybe [Text]
   -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe GetInvoicesUpcomingParametersQueryAutomaticTax')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
      -> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
      -> Maybe [Text]
      -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe GetInvoicesUpcomingParametersQueryAutomaticTax')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryAutomatic_tax")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
   -> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
   -> Maybe [Text]
   -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
      -> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
      -> Maybe [Text]
      -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
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
"queryCoupon")) Parser
  (Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
   -> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
   -> Maybe [Text]
   -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe Text)
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
      -> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
      -> Maybe [Text]
      -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
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
"queryCustomer")) Parser
  (Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
   -> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
   -> Maybe [Text]
   -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryCustomerDetails')
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
      -> Maybe [Text]
      -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryCustomerDetails')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryCustomer_details")) Parser
  (Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
   -> Maybe [Text]
   -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants)
-> Parser
     (Maybe [Text]
      -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryDiscounts")) Parser
  (Maybe [Text]
   -> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe [Text])
-> Parser
     (Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
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
"queryExpand")) Parser
  (Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems'])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryInvoice_items")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
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
"querySchedule")) Parser
  (Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe Text)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
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
"querySubscription")) Parser
  (Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"querySubscription_billing_cycle_anchor")) Parser
  (Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"querySubscription_cancel_at")) Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
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
"querySubscription_cancel_at_period_end")) Parser
  (Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe Bool)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
      -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
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
"querySubscription_cancel_now")) Parser
  (Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
   -> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants)
-> Parser
     (Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"querySubscription_default_tax_rates")) Parser
  (Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser
     (Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems'])
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
      -> Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"querySubscription_items")) Parser
  (Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
   -> Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior')
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"querySubscription_proration_behavior")) Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool
      -> GetInvoicesUpcomingParameters)
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
"querySubscription_proration_date")) Parser
  (Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool
   -> GetInvoicesUpcomingParameters)
-> Parser (Maybe Int)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
      -> Maybe Bool -> GetInvoicesUpcomingParameters)
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
"querySubscription_start_date")) Parser
  (Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
   -> Maybe Bool -> GetInvoicesUpcomingParameters)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants)
-> Parser (Maybe Bool -> GetInvoicesUpcomingParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"querySubscription_trial_end")) Parser (Maybe Bool -> GetInvoicesUpcomingParameters)
-> Parser (Maybe Bool) -> Parser GetInvoicesUpcomingParameters
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
"querySubscription_trial_from_plan"))

-- | Create a new 'GetInvoicesUpcomingParameters' with all required fields.
mkGetInvoicesUpcomingParameters :: GetInvoicesUpcomingParameters
mkGetInvoicesUpcomingParameters :: GetInvoicesUpcomingParameters
mkGetInvoicesUpcomingParameters =
  GetInvoicesUpcomingParameters :: Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
-> Maybe Text
-> Maybe Text
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
-> Maybe [Text]
-> Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
-> Maybe Text
-> Maybe Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Maybe Bool
-> Maybe Bool
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Maybe Int
-> Maybe Int
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Maybe Bool
-> GetInvoicesUpcomingParameters
GetInvoicesUpcomingParameters
    { getInvoicesUpcomingParametersQueryAutomaticTax :: Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
getInvoicesUpcomingParametersQueryAutomaticTax = Maybe GetInvoicesUpcomingParametersQueryAutomaticTax'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCoupon :: Maybe Text
getInvoicesUpcomingParametersQueryCoupon = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomer :: Maybe Text
getInvoicesUpcomingParametersQueryCustomer = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails :: Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
getInvoicesUpcomingParametersQueryCustomerDetails = Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryDiscounts :: Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
getInvoicesUpcomingParametersQueryDiscounts = Maybe GetInvoicesUpcomingParametersQueryDiscounts'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryExpand :: Maybe [Text]
getInvoicesUpcomingParametersQueryExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems :: Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
getInvoicesUpcomingParametersQueryInvoiceItems = Maybe [GetInvoicesUpcomingParametersQueryInvoiceItems']
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySchedule :: Maybe Text
getInvoicesUpcomingParametersQuerySchedule = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscription :: Maybe Text
getInvoicesUpcomingParametersQuerySubscription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor :: Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
getInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor = Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionCancelAt :: Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
getInvoicesUpcomingParametersQuerySubscriptionCancelAt = Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionCancelAtPeriodEnd :: Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionCancelAtPeriodEnd = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionCancelNow :: Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionCancelNow = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates :: Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
getInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates = Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionItems :: Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
getInvoicesUpcomingParametersQuerySubscriptionItems = Maybe [GetInvoicesUpcomingParametersQuerySubscriptionItems']
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionProrationBehavior :: Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
getInvoicesUpcomingParametersQuerySubscriptionProrationBehavior = Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionProrationDate :: Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionProrationDate = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionStartDate :: Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionStartDate = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionTrialEnd :: Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
getInvoicesUpcomingParametersQuerySubscriptionTrialEnd = Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionTrialFromPlan :: Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionTrialFromPlan = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryAutomatic_tax@ in the specification.
--
-- Represents the parameter named \'automatic_tax\'
--
-- Settings for automatic tax lookup for this invoice preview.
data GetInvoicesUpcomingParametersQueryAutomaticTax' = GetInvoicesUpcomingParametersQueryAutomaticTax'
  { -- | enabled
    GetInvoicesUpcomingParametersQueryAutomaticTax' -> Bool
getInvoicesUpcomingParametersQueryAutomaticTax'Enabled :: GHC.Types.Bool
  }
  deriving
    ( Int -> GetInvoicesUpcomingParametersQueryAutomaticTax' -> ShowS
[GetInvoicesUpcomingParametersQueryAutomaticTax'] -> ShowS
GetInvoicesUpcomingParametersQueryAutomaticTax' -> String
(Int -> GetInvoicesUpcomingParametersQueryAutomaticTax' -> ShowS)
-> (GetInvoicesUpcomingParametersQueryAutomaticTax' -> String)
-> ([GetInvoicesUpcomingParametersQueryAutomaticTax'] -> ShowS)
-> Show GetInvoicesUpcomingParametersQueryAutomaticTax'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryAutomaticTax'] -> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryAutomaticTax'] -> ShowS
show :: GetInvoicesUpcomingParametersQueryAutomaticTax' -> String
$cshow :: GetInvoicesUpcomingParametersQueryAutomaticTax' -> String
showsPrec :: Int -> GetInvoicesUpcomingParametersQueryAutomaticTax' -> ShowS
$cshowsPrec :: Int -> GetInvoicesUpcomingParametersQueryAutomaticTax' -> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryAutomaticTax'
-> GetInvoicesUpcomingParametersQueryAutomaticTax' -> Bool
(GetInvoicesUpcomingParametersQueryAutomaticTax'
 -> GetInvoicesUpcomingParametersQueryAutomaticTax' -> Bool)
-> (GetInvoicesUpcomingParametersQueryAutomaticTax'
    -> GetInvoicesUpcomingParametersQueryAutomaticTax' -> Bool)
-> Eq GetInvoicesUpcomingParametersQueryAutomaticTax'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryAutomaticTax'
-> GetInvoicesUpcomingParametersQueryAutomaticTax' -> Bool
$c/= :: GetInvoicesUpcomingParametersQueryAutomaticTax'
-> GetInvoicesUpcomingParametersQueryAutomaticTax' -> Bool
== :: GetInvoicesUpcomingParametersQueryAutomaticTax'
-> GetInvoicesUpcomingParametersQueryAutomaticTax' -> Bool
$c== :: GetInvoicesUpcomingParametersQueryAutomaticTax'
-> GetInvoicesUpcomingParametersQueryAutomaticTax' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryAutomaticTax' where
  toJSON :: GetInvoicesUpcomingParametersQueryAutomaticTax' -> Value
toJSON GetInvoicesUpcomingParametersQueryAutomaticTax'
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..= GetInvoicesUpcomingParametersQueryAutomaticTax' -> Bool
getInvoicesUpcomingParametersQueryAutomaticTax'Enabled GetInvoicesUpcomingParametersQueryAutomaticTax'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryAutomaticTax' -> Encoding
toEncoding GetInvoicesUpcomingParametersQueryAutomaticTax'
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..= GetInvoicesUpcomingParametersQueryAutomaticTax' -> Bool
getInvoicesUpcomingParametersQueryAutomaticTax'Enabled GetInvoicesUpcomingParametersQueryAutomaticTax'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryAutomaticTax' where
  parseJSON :: Value -> Parser GetInvoicesUpcomingParametersQueryAutomaticTax'
parseJSON = String
-> (Object
    -> Parser GetInvoicesUpcomingParametersQueryAutomaticTax')
-> Value
-> Parser GetInvoicesUpcomingParametersQueryAutomaticTax'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryAutomaticTax'" (\Object
obj -> (Bool -> GetInvoicesUpcomingParametersQueryAutomaticTax')
-> Parser (Bool -> GetInvoicesUpcomingParametersQueryAutomaticTax')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Bool -> GetInvoicesUpcomingParametersQueryAutomaticTax'
GetInvoicesUpcomingParametersQueryAutomaticTax' Parser (Bool -> GetInvoicesUpcomingParametersQueryAutomaticTax')
-> Parser Bool
-> Parser GetInvoicesUpcomingParametersQueryAutomaticTax'
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 'GetInvoicesUpcomingParametersQueryAutomaticTax'' with all required fields.
mkGetInvoicesUpcomingParametersQueryAutomaticTax' ::
  -- | 'getInvoicesUpcomingParametersQueryAutomaticTax'Enabled'
  GHC.Types.Bool ->
  GetInvoicesUpcomingParametersQueryAutomaticTax'
mkGetInvoicesUpcomingParametersQueryAutomaticTax' :: Bool -> GetInvoicesUpcomingParametersQueryAutomaticTax'
mkGetInvoicesUpcomingParametersQueryAutomaticTax' Bool
getInvoicesUpcomingParametersQueryAutomaticTax'Enabled = GetInvoicesUpcomingParametersQueryAutomaticTax' :: Bool -> GetInvoicesUpcomingParametersQueryAutomaticTax'
GetInvoicesUpcomingParametersQueryAutomaticTax' {getInvoicesUpcomingParametersQueryAutomaticTax'Enabled :: Bool
getInvoicesUpcomingParametersQueryAutomaticTax'Enabled = Bool
getInvoicesUpcomingParametersQueryAutomaticTax'Enabled}

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details@ in the specification.
--
-- Represents the parameter named \'customer_details\'
--
-- Details about the customer you want to invoice
data GetInvoicesUpcomingParametersQueryCustomerDetails' = GetInvoicesUpcomingParametersQueryCustomerDetails'
  { -- | address
    GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Address :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants),
    -- | shipping
    GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants),
    -- | tax
    GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
getInvoicesUpcomingParametersQueryCustomerDetails'Tax :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'),
    -- | tax_exempt
    GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
getInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'),
    -- | tax_ids
    GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds :: (GHC.Maybe.Maybe ([GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']))
  }
  deriving
    ( Int -> GetInvoicesUpcomingParametersQueryCustomerDetails' -> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'] -> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails' -> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails' -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails' -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'] -> ShowS)
-> Show GetInvoicesUpcomingParametersQueryCustomerDetails'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'] -> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'] -> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails' -> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails' -> String
showsPrec :: Int -> GetInvoicesUpcomingParametersQueryCustomerDetails' -> ShowS
$cshowsPrec :: Int -> GetInvoicesUpcomingParametersQueryCustomerDetails' -> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryCustomerDetails'
-> GetInvoicesUpcomingParametersQueryCustomerDetails' -> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'
 -> GetInvoicesUpcomingParametersQueryCustomerDetails' -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'
    -> GetInvoicesUpcomingParametersQueryCustomerDetails' -> Bool)
-> Eq GetInvoicesUpcomingParametersQueryCustomerDetails'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'
-> GetInvoicesUpcomingParametersQueryCustomerDetails' -> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'
-> GetInvoicesUpcomingParametersQueryCustomerDetails' -> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'
-> GetInvoicesUpcomingParametersQueryCustomerDetails' -> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'
-> GetInvoicesUpcomingParametersQueryCustomerDetails' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryCustomerDetails' where
  toJSON :: GetInvoicesUpcomingParametersQueryCustomerDetails' -> Value
toJSON GetInvoicesUpcomingParametersQueryCustomerDetails'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Address GetInvoicesUpcomingParametersQueryCustomerDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"shipping" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping GetInvoicesUpcomingParametersQueryCustomerDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax" Text
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
getInvoicesUpcomingParametersQueryCustomerDetails'Tax GetInvoicesUpcomingParametersQueryCustomerDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_exempt" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
getInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt GetInvoicesUpcomingParametersQueryCustomerDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_ids" Text
-> Maybe
     [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds GetInvoicesUpcomingParametersQueryCustomerDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryCustomerDetails' -> Encoding
toEncoding GetInvoicesUpcomingParametersQueryCustomerDetails'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Address GetInvoicesUpcomingParametersQueryCustomerDetails'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"shipping" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping GetInvoicesUpcomingParametersQueryCustomerDetails'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax" Text
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
getInvoicesUpcomingParametersQueryCustomerDetails'Tax GetInvoicesUpcomingParametersQueryCustomerDetails'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_exempt" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
getInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt GetInvoicesUpcomingParametersQueryCustomerDetails'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tax_ids" Text
-> Maybe
     [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'
-> Maybe
     [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds GetInvoicesUpcomingParametersQueryCustomerDetails'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryCustomerDetails' where
  parseJSON :: Value -> Parser GetInvoicesUpcomingParametersQueryCustomerDetails'
parseJSON = String
-> (Object
    -> Parser GetInvoicesUpcomingParametersQueryCustomerDetails')
-> Value
-> Parser GetInvoicesUpcomingParametersQueryCustomerDetails'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryCustomerDetails'" (\Object
obj -> (((((Maybe
   GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
 -> Maybe
      GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
 -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
 -> Maybe
      GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
 -> Maybe
      [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
 -> GetInvoicesUpcomingParametersQueryCustomerDetails')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
      -> Maybe
           GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
      -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
      -> Maybe
           GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
      -> Maybe
           [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
      -> GetInvoicesUpcomingParametersQueryCustomerDetails')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> Maybe
     [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
-> GetInvoicesUpcomingParametersQueryCustomerDetails'
GetInvoicesUpcomingParametersQueryCustomerDetails' Parser
  (Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
   -> Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
   -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
   -> Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
   -> Maybe
        [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
   -> GetInvoicesUpcomingParametersQueryCustomerDetails')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
      -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
      -> Maybe
           GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
      -> Maybe
           [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
      -> GetInvoicesUpcomingParametersQueryCustomerDetails')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address")) Parser
  (Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
   -> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
   -> Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
   -> Maybe
        [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
   -> GetInvoicesUpcomingParametersQueryCustomerDetails')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants)
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
      -> Maybe
           GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
      -> Maybe
           [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
      -> GetInvoicesUpcomingParametersQueryCustomerDetails')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"shipping")) Parser
  (Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
   -> Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
   -> Maybe
        [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
   -> GetInvoicesUpcomingParametersQueryCustomerDetails')
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax')
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
      -> Maybe
           [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
      -> GetInvoicesUpcomingParametersQueryCustomerDetails')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax")) Parser
  (Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
   -> Maybe
        [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
   -> GetInvoicesUpcomingParametersQueryCustomerDetails')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt')
-> Parser
     (Maybe [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
      -> GetInvoicesUpcomingParametersQueryCustomerDetails')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_exempt")) Parser
  (Maybe [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
   -> GetInvoicesUpcomingParametersQueryCustomerDetails')
-> Parser
     (Maybe [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'])
-> Parser GetInvoicesUpcomingParametersQueryCustomerDetails'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_ids"))

-- | Create a new 'GetInvoicesUpcomingParametersQueryCustomerDetails'' with all required fields.
mkGetInvoicesUpcomingParametersQueryCustomerDetails' :: GetInvoicesUpcomingParametersQueryCustomerDetails'
mkGetInvoicesUpcomingParametersQueryCustomerDetails' :: GetInvoicesUpcomingParametersQueryCustomerDetails'
mkGetInvoicesUpcomingParametersQueryCustomerDetails' =
  GetInvoicesUpcomingParametersQueryCustomerDetails' :: Maybe
  GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> Maybe
     [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
-> GetInvoicesUpcomingParametersQueryCustomerDetails'
GetInvoicesUpcomingParametersQueryCustomerDetails'
    { getInvoicesUpcomingParametersQueryCustomerDetails'Address :: Maybe
  GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Address = Maybe
  GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Shipping :: Maybe
  GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping = Maybe
  GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Tax :: Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
getInvoicesUpcomingParametersQueryCustomerDetails'Tax = Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt :: Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
getInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt = Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds :: Maybe [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds = Maybe [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details.properties.address.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1 = GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
  { -- | city
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1]
-> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
    -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1]
-> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
    -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1 where
  toJSON :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Value
toJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1City GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Country GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Line1 GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Line2 GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"postal_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1PostalCode GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1State GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Encoding
toEncoding GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1City GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Country GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Line1 GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Line2 GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"postal_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1PostalCode GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1State GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1 where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
parseJSON = String
-> (Object
    -> Parser
         GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
-> Value
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1 Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
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
"city")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
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
"country")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
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
"line1")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
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
"line2")) Parser
  (Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
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
"postal_code")) Parser
  (Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
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
"state"))

-- | Create a new 'GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1' with all required fields.
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1 :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1 :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1 =
  GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1 :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
    { getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1City :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Country :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Line1 :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Line2 :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1PostalCode :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1State :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details.properties.address.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQueryCustomerDetails'Address'EmptyString
  | GetInvoicesUpcomingParametersQueryCustomerDetails'Address'GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1 GetInvoicesUpcomingParametersQueryCustomerDetails'Address'OneOf1
  deriving (Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants]
-> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
    -> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Address'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details.properties.shipping.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1 = GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
  { -- | address
    GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address',
    -- | name
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Name :: Data.Text.Internal.Text,
    -- | phone
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1]
-> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
    -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1]
-> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
    -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1 where
  toJSON :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Value
toJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Name GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"phone" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Phone GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Encoding
toEncoding GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Name GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"phone" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Phone GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
obj)))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1 where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
parseJSON = String
-> (Object
    -> Parser
         GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1)
-> Value
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1" (\Object
obj -> (((GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
 -> Text
 -> Maybe Text
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1)
-> Parser
     (GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
      -> Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Text
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1 Parser
  (GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
   -> Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1)
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Parser
     (Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"address")) Parser
  (Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1)
-> Parser Text
-> Parser
     (Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'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
"name")) Parser
  (Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1)
-> Parser (Maybe Text)
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"phone"))

-- | Create a new 'GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1' with all required fields.
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1 ::
  -- | 'getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
  GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address' ->
  -- | 'getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Name'
  Data.Text.Internal.Text ->
  GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1 :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1 GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Name =
  GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1 :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Text
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
    { getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address = GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address,
      getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Name :: Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Name = Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Name,
      getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Phone :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Phone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details.properties.shipping.anyOf.properties.address@ in the specification.
data GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address' = GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
  { -- | city
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line1 :: Data.Text.Internal.Text,
    -- | line2
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address']
-> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
    -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address']
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address']
-> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
    -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address' where
  toJSON :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Value
toJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'City GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Country GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line1" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line1 GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line2 GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"postal_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'PostalCode GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'State GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Encoding
toEncoding GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'City GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Country GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line1" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line1 GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line2 GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"postal_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'PostalCode GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
-> Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'State GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address' where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
parseJSON = String
-> (Object
    -> Parser
         GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
-> Value
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address' Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
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
"city")) Parser
  (Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
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
"country")) Parser
  (Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
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
"line1")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
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
"line2")) Parser
  (Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
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
"postal_code")) Parser
  (Maybe Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address')
-> Parser (Maybe Text)
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
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
"state"))

-- | Create a new 'GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'' with all required fields.
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address' ::
  -- | 'getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line1'
  Data.Text.Internal.Text ->
  GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address' :: Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address' Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line1 =
  GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address' :: Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'
    { getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'City :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Country :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line1 :: Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line1 = Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line1,
      getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line2 :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'PostalCode :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'State :: Maybe Text
getInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1Address'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details.properties.shipping.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'EmptyString
  | GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1 GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'OneOf1
  deriving (Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants]
-> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
    -> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Shipping'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details.properties.tax@ in the specification.
data GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' = GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
  { -- | ip_address
    GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants)
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'] -> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
    -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'Tax']
    -> ShowS)
-> Show GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'] -> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'] -> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
    -> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> Bool)
-> Eq GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' where
  toJSON :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> Value
toJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"ip_address" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' -> Encoding
toEncoding GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"ip_address" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
-> Maybe
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
obj)

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

-- | Create a new 'GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'' with all required fields.
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Tax' :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Tax' :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
mkGetInvoicesUpcomingParametersQueryCustomerDetails'Tax' = GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' :: Maybe
  GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'
GetInvoicesUpcomingParametersQueryCustomerDetails'Tax' {getInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress :: Maybe
  GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
getInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress = Maybe
  GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details.properties.tax.properties.ip_address.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'EmptyString
  | GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Text Data.Text.Internal.Text
  deriving (Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants]
-> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
    -> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants where
  toJSON :: GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Value
toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'EmptyString
        | Bool
GHC.Base.otherwise -> case (Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Text (Text
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants)
-> Result Text
-> Result
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'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
  GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Result
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Result
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
a -> GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'Tax'IpAddress'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details.properties.tax_exempt@ in the specification.
data GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'EnumEmptyString
  | -- | Represents the JSON value @"exempt"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'EnumExempt
  | -- | Represents the JSON value @"none"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'EnumNone
  | -- | Represents the JSON value @"reverse"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'EnumReverse
  deriving (Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt']
-> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
    -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt']
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt']
-> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
    -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
    -> Bool)
-> Eq GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxExempt'
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details.properties.tax_ids.items@ in the specification.
data GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' = GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
  { -- | type
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type',
    -- | value
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' -> Text
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Value :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
-> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' -> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
    -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
    -> ShowS)
-> Show GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds']
-> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' -> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' -> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
    -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
    -> Bool)
-> Eq GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' where
  toJSON :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' -> Value
toJSON GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"type" Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"value" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' -> Text
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Value GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> Encoding
toEncoding GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"type" Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"value" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' -> Text
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Value GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' where
  parseJSON :: Value
-> Parser GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
parseJSON = String
-> (Object
    -> Parser
         GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds')
-> Value
-> Parser GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'" (\Object
obj -> ((GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
 -> Text
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds')
-> Parser
     (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
      -> Text
      -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' Parser
  (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
   -> Text
   -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds')
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Parser
     (Text -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"type")) Parser
  (Text -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds')
-> Parser Text
-> Parser GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
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
"value"))

-- | Create a new 'GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'' with all required fields.
mkGetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' ::
  -- | 'getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
  GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type' ->
  -- | 'getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Value'
  Data.Text.Internal.Text ->
  GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
mkGetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
mkGetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type Text
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Value =
  GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds' :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Text
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'
    { getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type = GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type,
      getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Value :: Text
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Value = Text
getInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Value
    }

-- | Defines the enum schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryCustomer_details.properties.tax_ids.items.properties.type@ in the specification.
data GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'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.
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"ae_trn"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumAeTrn
  | -- | Represents the JSON value @"au_abn"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumAuAbn
  | -- | Represents the JSON value @"br_cnpj"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumBrCnpj
  | -- | Represents the JSON value @"br_cpf"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumBrCpf
  | -- | Represents the JSON value @"ca_bn"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaBn
  | -- | Represents the JSON value @"ca_gst_hst"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaGstHst
  | -- | Represents the JSON value @"ca_pst_bc"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaPstBc
  | -- | Represents the JSON value @"ca_pst_mb"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaPstMb
  | -- | Represents the JSON value @"ca_pst_sk"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaPstSk
  | -- | Represents the JSON value @"ca_qst"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaQst
  | -- | Represents the JSON value @"ch_vat"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumChVat
  | -- | Represents the JSON value @"cl_tin"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumClTin
  | -- | Represents the JSON value @"es_cif"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumEsCif
  | -- | Represents the JSON value @"eu_vat"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumEuVat
  | -- | Represents the JSON value @"gb_vat"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumGbVat
  | -- | Represents the JSON value @"hk_br"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumHkBr
  | -- | Represents the JSON value @"id_npwp"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumIdNpwp
  | -- | Represents the JSON value @"il_vat"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumIlVat
  | -- | Represents the JSON value @"in_gst"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumInGst
  | -- | Represents the JSON value @"jp_cn"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumJpCn
  | -- | Represents the JSON value @"jp_rn"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumJpRn
  | -- | Represents the JSON value @"kr_brn"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumKrBrn
  | -- | Represents the JSON value @"li_uid"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumLiUid
  | -- | Represents the JSON value @"mx_rfc"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMxRfc
  | -- | Represents the JSON value @"my_frp"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMyFrp
  | -- | Represents the JSON value @"my_itn"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMyItn
  | -- | Represents the JSON value @"my_sst"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMySst
  | -- | Represents the JSON value @"no_vat"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumNoVat
  | -- | Represents the JSON value @"nz_gst"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumNzGst
  | -- | Represents the JSON value @"ru_inn"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumRuInn
  | -- | Represents the JSON value @"ru_kpp"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumRuKpp
  | -- | Represents the JSON value @"sa_vat"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumSaVat
  | -- | Represents the JSON value @"sg_gst"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumSgGst
  | -- | Represents the JSON value @"sg_uen"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumSgUen
  | -- | Represents the JSON value @"th_vat"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumThVat
  | -- | Represents the JSON value @"tw_vat"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumTwVat
  | -- | Represents the JSON value @"us_ein"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumUsEin
  | -- | Represents the JSON value @"za_vat"@
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumZaVat
  deriving (Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> ShowS
[GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type']
-> ShowS
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
    -> String)
-> ([GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type']
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type']
-> ShowS
show :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> String
$cshow :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Bool
(GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
 -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
    -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Bool
== :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type' where
  toJSON :: GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Value
toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'Other Value
val) = Value
val
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumAeTrn) = Value
"ae_trn"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumAuAbn) = Value
"au_abn"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumBrCnpj) = Value
"br_cnpj"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumBrCpf) = Value
"br_cpf"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaBn) = Value
"ca_bn"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaGstHst) = Value
"ca_gst_hst"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaPstBc) = Value
"ca_pst_bc"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaPstMb) = Value
"ca_pst_mb"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaPstSk) = Value
"ca_pst_sk"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaQst) = Value
"ca_qst"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumChVat) = Value
"ch_vat"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumClTin) = Value
"cl_tin"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumEsCif) = Value
"es_cif"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumEuVat) = Value
"eu_vat"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumGbVat) = Value
"gb_vat"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumHkBr) = Value
"hk_br"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumIdNpwp) = Value
"id_npwp"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumIlVat) = Value
"il_vat"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumInGst) = Value
"in_gst"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumJpCn) = Value
"jp_cn"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumJpRn) = Value
"jp_rn"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumKrBrn) = Value
"kr_brn"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumLiUid) = Value
"li_uid"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMxRfc) = Value
"mx_rfc"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMyFrp) = Value
"my_frp"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMyItn) = Value
"my_itn"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMySst) = Value
"my_sst"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumNoVat) = Value
"no_vat"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumNzGst) = Value
"nz_gst"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumRuInn) = Value
"ru_inn"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumRuKpp) = Value
"ru_kpp"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumSaVat) = Value
"sa_vat"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumSgGst) = Value
"sg_gst"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumSgUen) = Value
"sg_uen"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumThVat) = Value
"th_vat"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumTwVat) = Value
"tw_vat"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumUsEin) = Value
"us_ein"
  toJSON (GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumZaVat) = Value
"za_vat"

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type' where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
parseJSON Value
val =
    GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
-> Parser
     GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
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
"ae_trn" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumAeTrn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"au_abn" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumAuAbn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"br_cnpj" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumBrCnpj
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"br_cpf" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumBrCpf
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ca_bn" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaBn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ca_gst_hst" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaGstHst
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ca_pst_bc" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaPstBc
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ca_pst_mb" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaPstMb
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ca_pst_sk" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaPstSk
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ca_qst" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumCaQst
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ch_vat" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumChVat
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"cl_tin" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumClTin
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"es_cif" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumEsCif
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"eu_vat" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumEuVat
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"gb_vat" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumGbVat
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"hk_br" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumHkBr
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"id_npwp" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumIdNpwp
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"il_vat" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumIlVat
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"in_gst" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumInGst
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"jp_cn" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumJpCn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"jp_rn" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumJpRn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"kr_brn" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumKrBrn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"li_uid" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumLiUid
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"mx_rfc" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMxRfc
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"my_frp" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMyFrp
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"my_itn" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMyItn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"my_sst" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumMySst
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"no_vat" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumNoVat
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"nz_gst" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumNzGst
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ru_inn" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumRuInn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ru_kpp" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumRuKpp
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sa_vat" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumSaVat
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sg_gst" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumSgGst
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sg_uen" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumSgUen
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"th_vat" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumThVat
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"tw_vat" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumTwVat
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"us_ein" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumUsEin
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"za_vat" -> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'EnumZaVat
            | Bool
GHC.Base.otherwise -> Value
-> GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'
GetInvoicesUpcomingParametersQueryCustomerDetails'TaxIds'Type'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryDiscounts.anyOf.items@ in the specification.
data GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 = GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
  { -- | coupon
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Maybe Text
getInvoicesUpcomingParametersQueryDiscounts'OneOf1Coupon :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | discount
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Maybe Text
getInvoicesUpcomingParametersQueryDiscounts'OneOf1Discount :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> ShowS
[GetInvoicesUpcomingParametersQueryDiscounts'OneOf1] -> ShowS
GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> String
(Int
 -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> String)
-> ([GetInvoicesUpcomingParametersQueryDiscounts'OneOf1] -> ShowS)
-> Show GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryDiscounts'OneOf1] -> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryDiscounts'OneOf1] -> ShowS
show :: GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> String
$cshow :: GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> String
showsPrec :: Int -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> ShowS
$cshowsPrec :: Int -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
-> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Bool
(GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
 -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Bool)
-> (GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
    -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Bool)
-> Eq GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
-> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Bool
$c/= :: GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
-> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Bool
== :: GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
-> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Bool
$c== :: GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
-> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 where
  toJSON :: GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Value
toJSON GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"coupon" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Maybe Text
getInvoicesUpcomingParametersQueryDiscounts'OneOf1Coupon GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"discount" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Maybe Text
getInvoicesUpcomingParametersQueryDiscounts'OneOf1Discount GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Encoding
toEncoding GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"coupon" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Maybe Text
getInvoicesUpcomingParametersQueryDiscounts'OneOf1Coupon GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"discount" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 -> Maybe Text
getInvoicesUpcomingParametersQueryDiscounts'OneOf1Discount GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 where
  parseJSON :: Value -> Parser GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
parseJSON = String
-> (Object
    -> Parser GetInvoicesUpcomingParametersQueryDiscounts'OneOf1)
-> Value
-> Parser GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryDiscounts'OneOf1" (\Object
obj -> ((Maybe Text
 -> Maybe Text
 -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 Parser
  (Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1)
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 Text -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1)
-> Parser (Maybe Text)
-> Parser GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
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
"discount"))

-- | Create a new 'GetInvoicesUpcomingParametersQueryDiscounts'OneOf1' with all required fields.
mkGetInvoicesUpcomingParametersQueryDiscounts'OneOf1 :: GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
mkGetInvoicesUpcomingParametersQueryDiscounts'OneOf1 :: GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
mkGetInvoicesUpcomingParametersQueryDiscounts'OneOf1 =
  GetInvoicesUpcomingParametersQueryDiscounts'OneOf1 :: Maybe Text
-> Maybe Text -> GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
GetInvoicesUpcomingParametersQueryDiscounts'OneOf1
    { getInvoicesUpcomingParametersQueryDiscounts'OneOf1Coupon :: Maybe Text
getInvoicesUpcomingParametersQueryDiscounts'OneOf1Coupon = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryDiscounts'OneOf1Discount :: Maybe Text
getInvoicesUpcomingParametersQueryDiscounts'OneOf1Discount = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryDiscounts.anyOf@ in the specification.
--
-- Represents the parameter named \'discounts\'
--
-- The coupons to redeem into discounts for the invoice preview. If not specified, inherits the discount from the customer or subscription. Pass an empty string to avoid inheriting any discounts. To preview the upcoming invoice for a subscription that hasn\'t been created, use \`coupon\` instead.
data GetInvoicesUpcomingParametersQueryDiscounts'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQueryDiscounts'EmptyString
  | GetInvoicesUpcomingParametersQueryDiscounts'ListTGetInvoicesUpcomingParametersQueryDiscounts'OneOf1 ([GetInvoicesUpcomingParametersQueryDiscounts'OneOf1])
  deriving (Int
-> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> ShowS
[GetInvoicesUpcomingParametersQueryDiscounts'Variants] -> ShowS
GetInvoicesUpcomingParametersQueryDiscounts'Variants -> String
(Int
 -> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> ShowS)
-> (GetInvoicesUpcomingParametersQueryDiscounts'Variants -> String)
-> ([GetInvoicesUpcomingParametersQueryDiscounts'Variants]
    -> ShowS)
-> Show GetInvoicesUpcomingParametersQueryDiscounts'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryDiscounts'Variants] -> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryDiscounts'Variants] -> ShowS
show :: GetInvoicesUpcomingParametersQueryDiscounts'Variants -> String
$cshow :: GetInvoicesUpcomingParametersQueryDiscounts'Variants -> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQueryDiscounts'Variants
-> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> Bool
(GetInvoicesUpcomingParametersQueryDiscounts'Variants
 -> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> Bool)
-> (GetInvoicesUpcomingParametersQueryDiscounts'Variants
    -> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> Bool)
-> Eq GetInvoicesUpcomingParametersQueryDiscounts'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryDiscounts'Variants
-> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> Bool
$c/= :: GetInvoicesUpcomingParametersQueryDiscounts'Variants
-> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> Bool
== :: GetInvoicesUpcomingParametersQueryDiscounts'Variants
-> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> Bool
$c== :: GetInvoicesUpcomingParametersQueryDiscounts'Variants
-> GetInvoicesUpcomingParametersQueryDiscounts'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryInvoice_items.items@ in the specification.
data GetInvoicesUpcomingParametersQueryInvoiceItems' = GetInvoicesUpcomingParametersQueryInvoiceItems'
  { -- | amount
    GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'Amount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | currency
    GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Currency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | description
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Description :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | discountable
    GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Bool
getInvoicesUpcomingParametersQueryInvoiceItems'Discountable :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | discounts
    GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants),
    -- | invoiceitem
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Invoiceitem :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | metadata
    GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'Metadata :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants),
    -- | period
    GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
getInvoicesUpcomingParametersQueryInvoiceItems'Period :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'),
    -- | price
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Price :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | price_data
    GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'),
    -- | quantity
    GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'Quantity :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | tax_rates
    GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'TaxRates :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants),
    -- | unit_amount
    GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'UnitAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | unit_amount_decimal
    GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'UnitAmountDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> GetInvoicesUpcomingParametersQueryInvoiceItems' -> ShowS
[GetInvoicesUpcomingParametersQueryInvoiceItems'] -> ShowS
GetInvoicesUpcomingParametersQueryInvoiceItems' -> String
(Int -> GetInvoicesUpcomingParametersQueryInvoiceItems' -> ShowS)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems' -> String)
-> ([GetInvoicesUpcomingParametersQueryInvoiceItems'] -> ShowS)
-> Show GetInvoicesUpcomingParametersQueryInvoiceItems'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'] -> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'] -> ShowS
show :: GetInvoicesUpcomingParametersQueryInvoiceItems' -> String
$cshow :: GetInvoicesUpcomingParametersQueryInvoiceItems' -> String
showsPrec :: Int -> GetInvoicesUpcomingParametersQueryInvoiceItems' -> ShowS
$cshowsPrec :: Int -> GetInvoicesUpcomingParametersQueryInvoiceItems' -> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryInvoiceItems'
-> GetInvoicesUpcomingParametersQueryInvoiceItems' -> Bool
(GetInvoicesUpcomingParametersQueryInvoiceItems'
 -> GetInvoicesUpcomingParametersQueryInvoiceItems' -> Bool)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'
    -> GetInvoicesUpcomingParametersQueryInvoiceItems' -> Bool)
-> Eq GetInvoicesUpcomingParametersQueryInvoiceItems'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'
-> GetInvoicesUpcomingParametersQueryInvoiceItems' -> Bool
$c/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'
-> GetInvoicesUpcomingParametersQueryInvoiceItems' -> Bool
== :: GetInvoicesUpcomingParametersQueryInvoiceItems'
-> GetInvoicesUpcomingParametersQueryInvoiceItems' -> Bool
$c== :: GetInvoicesUpcomingParametersQueryInvoiceItems'
-> GetInvoicesUpcomingParametersQueryInvoiceItems' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryInvoiceItems' where
  toJSON :: GetInvoicesUpcomingParametersQueryInvoiceItems' -> Value
toJSON GetInvoicesUpcomingParametersQueryInvoiceItems'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'Amount GetInvoicesUpcomingParametersQueryInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Currency GetInvoicesUpcomingParametersQueryInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"description" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Description GetInvoicesUpcomingParametersQueryInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"discountable" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Bool
getInvoicesUpcomingParametersQueryInvoiceItems'Discountable GetInvoicesUpcomingParametersQueryInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"discounts" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts GetInvoicesUpcomingParametersQueryInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"invoiceitem" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Invoiceitem GetInvoicesUpcomingParametersQueryInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'Metadata GetInvoicesUpcomingParametersQueryInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"period" Text
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
getInvoicesUpcomingParametersQueryInvoiceItems'Period GetInvoicesUpcomingParametersQueryInvoiceItems'
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..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Price GetInvoicesUpcomingParametersQueryInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"price_data" Text
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData GetInvoicesUpcomingParametersQueryInvoiceItems'
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..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'Quantity GetInvoicesUpcomingParametersQueryInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_rates" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'TaxRates GetInvoicesUpcomingParametersQueryInvoiceItems'
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..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'UnitAmount GetInvoicesUpcomingParametersQueryInvoiceItems'
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..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'UnitAmountDecimal GetInvoicesUpcomingParametersQueryInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryInvoiceItems' -> Encoding
toEncoding GetInvoicesUpcomingParametersQueryInvoiceItems'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'Amount GetInvoicesUpcomingParametersQueryInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Currency GetInvoicesUpcomingParametersQueryInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"description" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Description GetInvoicesUpcomingParametersQueryInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"discountable" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Bool
getInvoicesUpcomingParametersQueryInvoiceItems'Discountable GetInvoicesUpcomingParametersQueryInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"discounts" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts GetInvoicesUpcomingParametersQueryInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"invoiceitem" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Invoiceitem GetInvoicesUpcomingParametersQueryInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'Metadata GetInvoicesUpcomingParametersQueryInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"period" Text
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
getInvoicesUpcomingParametersQueryInvoiceItems'Period GetInvoicesUpcomingParametersQueryInvoiceItems'
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..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Price GetInvoicesUpcomingParametersQueryInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"price_data" Text
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData GetInvoicesUpcomingParametersQueryInvoiceItems'
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..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'Quantity GetInvoicesUpcomingParametersQueryInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_rates" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'TaxRates GetInvoicesUpcomingParametersQueryInvoiceItems'
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..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'UnitAmount GetInvoicesUpcomingParametersQueryInvoiceItems'
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..= GetInvoicesUpcomingParametersQueryInvoiceItems' -> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'UnitAmountDecimal GetInvoicesUpcomingParametersQueryInvoiceItems'
obj))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryInvoiceItems' where
  parseJSON :: Value -> Parser GetInvoicesUpcomingParametersQueryInvoiceItems'
parseJSON = String
-> (Object
    -> Parser GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Value
-> Parser GetInvoicesUpcomingParametersQueryInvoiceItems'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryInvoiceItems'" (\Object
obj -> ((((((((((((((Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe
      GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
 -> Maybe Text
 -> Maybe
      GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
 -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
 -> Maybe Text
 -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
 -> Maybe Int
 -> Maybe
      GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
 -> Maybe Int
 -> Maybe Text
 -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
      -> Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> Maybe Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
-> Maybe Text
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe Int
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> Maybe Int
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryInvoiceItems'
GetInvoicesUpcomingParametersQueryInvoiceItems' Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
   -> Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
      -> Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
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")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
   -> Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
      -> Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"currency")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
   -> Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
      -> Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
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
"description")) Parser
  (Maybe Bool
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
   -> Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser (Maybe Bool)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
      -> Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
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
"discountable")) Parser
  (Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
   -> Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants)
-> Parser
     (Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
      -> Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"discounts")) Parser
  (Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
   -> Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
      -> Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
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
"invoiceitem")) Parser
  (Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
   -> Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants)
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
      -> Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
   -> Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period')
-> Parser
     (Maybe Text
      -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"period")) Parser
  (Maybe Text
   -> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser (Maybe Text)
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
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 GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
-> Parser
     (Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"price_data")) Parser
  (Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser (Maybe Int)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems')
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
     GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants)
-> Parser
     (Maybe Int
      -> Maybe Text -> GetInvoicesUpcomingParametersQueryInvoiceItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_rates")) Parser
  (Maybe Int
   -> Maybe Text -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text -> GetInvoicesUpcomingParametersQueryInvoiceItems')
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 -> GetInvoicesUpcomingParametersQueryInvoiceItems')
-> Parser (Maybe Text)
-> Parser GetInvoicesUpcomingParametersQueryInvoiceItems'
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 'GetInvoicesUpcomingParametersQueryInvoiceItems'' with all required fields.
mkGetInvoicesUpcomingParametersQueryInvoiceItems' :: GetInvoicesUpcomingParametersQueryInvoiceItems'
mkGetInvoicesUpcomingParametersQueryInvoiceItems' :: GetInvoicesUpcomingParametersQueryInvoiceItems'
mkGetInvoicesUpcomingParametersQueryInvoiceItems' =
  GetInvoicesUpcomingParametersQueryInvoiceItems' :: Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> Maybe Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
-> Maybe Text
-> Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe Int
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> Maybe Int
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryInvoiceItems'
GetInvoicesUpcomingParametersQueryInvoiceItems'
    { getInvoicesUpcomingParametersQueryInvoiceItems'Amount :: Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'Amount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'Currency :: Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Currency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'Description :: Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Description = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'Discountable :: Maybe Bool
getInvoicesUpcomingParametersQueryInvoiceItems'Discountable = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'Discounts :: Maybe
  GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts = Maybe
  GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'Invoiceitem :: Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Invoiceitem = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'Metadata :: Maybe
  GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'Metadata = Maybe
  GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'Period :: Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
getInvoicesUpcomingParametersQueryInvoiceItems'Period = Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'Price :: Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Price = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'PriceData :: Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData = Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'Quantity :: Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'Quantity = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'TaxRates :: Maybe
  GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
getInvoicesUpcomingParametersQueryInvoiceItems'TaxRates = Maybe
  GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'UnitAmount :: Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'UnitAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'UnitAmountDecimal :: Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'UnitAmountDecimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryInvoice_items.items.properties.discounts.anyOf.items@ in the specification.
data GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1 = GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
  { -- | coupon
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1Coupon :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | discount
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1Discount :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> ShowS
[GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1]
-> ShowS
GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
    -> String)
-> ([GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1]
-> ShowS
show :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> String
$cshow :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Bool
(GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
    -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Bool
== :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1 where
  toJSON :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Value
toJSON GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"coupon" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1Coupon GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"discount" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1Discount GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Encoding
toEncoding GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"coupon" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1Coupon GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"discount" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
-> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1Discount GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1 where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
parseJSON = String
-> (Object
    -> Parser
         GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1)
-> Value
-> Parser
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1" (\Object
obj -> ((Maybe Text
 -> Maybe Text
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1 Parser
  (Maybe Text
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1)
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 Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1)
-> Parser (Maybe Text)
-> Parser
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
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
"discount"))

-- | Create a new 'GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1' with all required fields.
mkGetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1 :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
mkGetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1 :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
mkGetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1 =
  GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1 :: Maybe Text
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1
    { getInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1Coupon :: Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1Coupon = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1Discount :: Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1Discount = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryInvoice_items.items.properties.discounts.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'EmptyString
  | GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'ListTGetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1 ([GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1])
  deriving (Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> ShowS
[GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants]
-> ShowS
GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> Bool
(GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
    -> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants where
  toJSON :: GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
-> Value
toJSON (GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'ListTGetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1 [GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1]
a) = [GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1]
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON [GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'OneOf1]
a
  toJSON (GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'Variants
GetInvoicesUpcomingParametersQueryInvoiceItems'Discounts'EmptyString) = Value
""

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

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryInvoice_items.items.properties.metadata.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'EmptyString
  | GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Object Data.Aeson.Types.Internal.Object
  deriving (Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> ShowS
[GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants]
-> ShowS
GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> Bool
(GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
    -> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Metadata'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryInvoice_items.items.properties.period@ in the specification.
data GetInvoicesUpcomingParametersQueryInvoiceItems'Period' = GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
  { -- | end
    GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'End :: GHC.Types.Int,
    -- | start
    GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'Start :: GHC.Types.Int
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> ShowS
[GetInvoicesUpcomingParametersQueryInvoiceItems'Period'] -> ShowS
GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> String
(Int
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> ShowS)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
    -> String)
-> ([GetInvoicesUpcomingParametersQueryInvoiceItems'Period']
    -> ShowS)
-> Show GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'Period'] -> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'Period'] -> ShowS
show :: GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> String
$cshow :: GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Bool
(GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Bool)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
    -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Bool)
-> Eq GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Bool
$c/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Bool
== :: GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Bool
$c== :: GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryInvoiceItems'Period' where
  toJSON :: GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Value
toJSON GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"end" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'End GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"start" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'Start GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Encoding
toEncoding GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"end" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'End GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"start" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'Period' -> Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'Start GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryInvoiceItems'Period' where
  parseJSON :: Value
-> Parser GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
parseJSON = String
-> (Object
    -> Parser GetInvoicesUpcomingParametersQueryInvoiceItems'Period')
-> Value
-> Parser GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryInvoiceItems'Period'" (\Object
obj -> ((Int
 -> Int -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period')
-> Parser
     (Int
      -> Int -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Int
-> Int -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
GetInvoicesUpcomingParametersQueryInvoiceItems'Period' Parser
  (Int
   -> Int -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period')
-> Parser Int
-> Parser
     (Int -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period')
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
"end")) Parser
  (Int -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period')
-> Parser Int
-> Parser GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
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
"start"))

-- | Create a new 'GetInvoicesUpcomingParametersQueryInvoiceItems'Period'' with all required fields.
mkGetInvoicesUpcomingParametersQueryInvoiceItems'Period' ::
  -- | 'getInvoicesUpcomingParametersQueryInvoiceItems'Period'End'
  GHC.Types.Int ->
  -- | 'getInvoicesUpcomingParametersQueryInvoiceItems'Period'Start'
  GHC.Types.Int ->
  GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
mkGetInvoicesUpcomingParametersQueryInvoiceItems'Period' :: Int
-> Int -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
mkGetInvoicesUpcomingParametersQueryInvoiceItems'Period' Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'End Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'Start =
  GetInvoicesUpcomingParametersQueryInvoiceItems'Period' :: Int
-> Int -> GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
GetInvoicesUpcomingParametersQueryInvoiceItems'Period'
    { getInvoicesUpcomingParametersQueryInvoiceItems'Period'End :: Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'End = Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'End,
      getInvoicesUpcomingParametersQueryInvoiceItems'Period'Start :: Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'Start = Int
getInvoicesUpcomingParametersQueryInvoiceItems'Period'Start
    }

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryInvoice_items.items.properties.price_data@ in the specification.
data GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' = GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
  { -- | currency
    GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' -> Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Currency :: Data.Text.Internal.Text,
    -- | product
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' -> Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Product :: Data.Text.Internal.Text,
    -- | tax_behavior
    GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'),
    -- | unit_amount
    GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'UnitAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | unit_amount_decimal
    GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'UnitAmountDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> ShowS
[GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData']
-> ShowS
GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' -> String
(Int
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
    -> String)
-> ([GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData']
    -> ShowS)
-> Show GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData']
-> ShowS
show :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' -> String
$cshow :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' -> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Bool
(GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
    -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
    -> Bool)
-> Eq GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Bool
== :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' where
  toJSON :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' -> Value
toJSON GetInvoicesUpcomingParametersQueryInvoiceItems'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..= GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' -> Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Currency GetInvoicesUpcomingParametersQueryInvoiceItems'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..= GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' -> Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Product GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_behavior" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior GetInvoicesUpcomingParametersQueryInvoiceItems'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..= GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'UnitAmount GetInvoicesUpcomingParametersQueryInvoiceItems'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..= GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'UnitAmountDecimal GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Encoding
toEncoding GetInvoicesUpcomingParametersQueryInvoiceItems'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..= GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' -> Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Currency GetInvoicesUpcomingParametersQueryInvoiceItems'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..= GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' -> Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Product GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_behavior" Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior GetInvoicesUpcomingParametersQueryInvoiceItems'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..= GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'UnitAmount GetInvoicesUpcomingParametersQueryInvoiceItems'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..= GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
-> Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'UnitAmountDecimal GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' where
  parseJSON :: Value
-> Parser GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
parseJSON = String
-> (Object
    -> Parser
         GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
-> Value
-> Parser GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'" (\Object
obj -> (((((Text
 -> Text
 -> Maybe
      GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
 -> Maybe Int
 -> Maybe Text
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
-> Parser
     (Text
      -> Text
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' Parser
  (Text
   -> Text
   -> Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
-> Parser Text
-> Parser
     (Text
      -> Maybe
           GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems'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
        GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
-> Parser Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems'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
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_behavior")) Parser
  (Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> GetInvoicesUpcomingParametersQueryInvoiceItems'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
   -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData')
-> Parser (Maybe Text)
-> Parser GetInvoicesUpcomingParametersQueryInvoiceItems'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 'GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'' with all required fields.
mkGetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' ::
  -- | 'getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Currency'
  Data.Text.Internal.Text ->
  -- | 'getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Product'
  Data.Text.Internal.Text ->
  GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
mkGetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' :: Text
-> Text
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
mkGetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Currency Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Product =
  GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData' :: Text
-> Text
-> Maybe
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'
    { getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Currency :: Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Currency = Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Currency,
      getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Product :: Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Product = Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'Product,
      getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior :: Maybe
  GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior = Maybe
  GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'UnitAmount :: Maybe Int
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'UnitAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'UnitAmountDecimal :: Maybe Text
getInvoicesUpcomingParametersQueryInvoiceItems'PriceData'UnitAmountDecimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryInvoice_items.items.properties.price_data.properties.tax_behavior@ in the specification.
data GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    GetInvoicesUpcomingParametersQueryInvoiceItems'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.
    GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"exclusive"@
    GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'EnumExclusive
  | -- | Represents the JSON value @"inclusive"@
    GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'EnumInclusive
  | -- | Represents the JSON value @"unspecified"@
    GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'EnumUnspecified
  deriving (Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> ShowS
[GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior']
-> ShowS
GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
    -> String)
-> ([GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior']
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior']
-> ShowS
show :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> String
$cshow :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> Bool
(GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
    -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> Bool
== :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior' where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
parseJSON Value
val =
    GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
-> Parser
     GetInvoicesUpcomingParametersQueryInvoiceItems'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" -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'EnumExclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"inclusive" -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'EnumInclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unspecified" -> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'EnumUnspecified
            | Bool
GHC.Base.otherwise -> Value
-> GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'
GetInvoicesUpcomingParametersQueryInvoiceItems'PriceData'TaxBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.queryInvoice_items.items.properties.tax_rates.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'EmptyString
  | GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> ShowS
[GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants]
-> ShowS
GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> Bool
(GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
 -> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
    -> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQueryInvoiceItems'TaxRates'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_billing_cycle_anchor.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"now"@
    GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1EnumNow
  | -- | Represents the JSON value @"unchanged"@
    GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1EnumUnchanged
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1]
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1]
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
 -> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
    -> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1 where
  toJSON :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> Value
toJSON (GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1Other Value
val) = Value
val
  toJSON (GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1EnumNow) = Value
"now"
  toJSON (GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1EnumUnchanged) = Value
"unchanged"

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1 where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
parseJSON Value
val =
    GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
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" -> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1EnumNow
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unchanged" -> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1EnumUnchanged
            | Bool
GHC.Base.otherwise -> Value
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_billing_cycle_anchor.anyOf@ in the specification.
--
-- Represents the parameter named \'subscription_billing_cycle_anchor\'
--
-- For new subscriptions, a future timestamp to anchor the subscription\'s [billing cycle](https:\/\/stripe.com\/docs\/subscriptions\/billing-cycle). This is used to determine the date of the first full invoice, and, for plans with \`month\` or \`year\` intervals, the day of the month for subsequent invoices. For existing subscriptions, the value can only be set to \`now\` or \`unchanged\`.
data GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
  = GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1 GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'OneOf1
  | GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Int GHC.Types.Int
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants]
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
 -> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
    -> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionBillingCycleAnchor'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_cancel_at.anyOf@ in the specification.
--
-- Represents the parameter named \'subscription_cancel_at\'
--
-- Timestamp indicating when the subscription should be scheduled to cancel. Will prorate if within the current period and prorations have been enabled using \`proration_behavior\`.
data GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'EmptyString
  | GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Int GHC.Types.Int
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants]
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
 -> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
    -> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionCancelAt'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_default_tax_rates.anyOf@ in the specification.
--
-- Represents the parameter named \'subscription_default_tax_rates\'
--
-- If provided, the invoice returned will preview updating or creating a subscription with these default tax rates. The default tax rates will apply to any line item that does not have \`tax_rates\` set.
data GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'EmptyString
  | GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants]
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
 -> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
    -> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionDefaultTaxRates'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_items.items@ in the specification.
data GetInvoicesUpcomingParametersQuerySubscriptionItems' = GetInvoicesUpcomingParametersQuerySubscriptionItems'
  { -- | billing_thresholds
    GetInvoicesUpcomingParametersQuerySubscriptionItems'
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
getInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants),
    -- | clear_usage
    GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionItems'ClearUsage :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | deleted
    GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Maybe Bool
getInvoicesUpcomingParametersQuerySubscriptionItems'Deleted :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | id
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Maybe Text
getInvoicesUpcomingParametersQuerySubscriptionItems'Id :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | metadata
    GetInvoicesUpcomingParametersQuerySubscriptionItems'
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
getInvoicesUpcomingParametersQuerySubscriptionItems'Metadata :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants),
    -- | price
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Maybe Text
getInvoicesUpcomingParametersQuerySubscriptionItems'Price :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | price_data
    GetInvoicesUpcomingParametersQuerySubscriptionItems'
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'),
    -- | quantity
    GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionItems'Quantity :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | tax_rates
    GetInvoicesUpcomingParametersQuerySubscriptionItems'
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
getInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants)
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionItems'] -> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionItems' -> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems' -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionItems']
    -> ShowS)
-> Show GetInvoicesUpcomingParametersQuerySubscriptionItems'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'] -> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'] -> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionItems' -> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionItems' -> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQuerySubscriptionItems'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionItems'
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'
    -> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Bool)
-> Eq GetInvoicesUpcomingParametersQuerySubscriptionItems'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems' -> Bool
GHC.Classes.Eq
    )

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

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQuerySubscriptionItems' where
  parseJSON :: Value
-> Parser GetInvoicesUpcomingParametersQuerySubscriptionItems'
parseJSON = String
-> (Object
    -> Parser GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Value
-> Parser GetInvoicesUpcomingParametersQuerySubscriptionItems'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQuerySubscriptionItems'" (\Object
obj -> (((((((((Maybe
   GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe
      GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
 -> Maybe Text
 -> Maybe
      GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
 -> Maybe Int
 -> Maybe
      GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> Maybe Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Maybe Int
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'
GetInvoicesUpcomingParametersQuerySubscriptionItems' Parser
  (Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'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
        GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
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
        GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
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
        GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
      -> Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
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
     GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
   -> Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants)
-> Parser
     (Maybe Text
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe Text
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
      -> Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
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
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
   -> Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
-> Parser
     (Maybe Int
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"price_data")) Parser
  (Maybe Int
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Parser (Maybe Int)
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
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
     GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants)
-> Parser GetInvoicesUpcomingParametersQuerySubscriptionItems'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_rates"))

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_items.items.properties.billing_thresholds.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1 = GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
  { -- | usage_gte
    GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> Int
getInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1UsageGte :: GHC.Types.Int
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1]
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1]
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
    -> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1 where
  toJSON :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> Value
toJSON GetInvoicesUpcomingParametersQuerySubscriptionItems'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..= GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> Int
getInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1UsageGte GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> Encoding
toEncoding GetInvoicesUpcomingParametersQuerySubscriptionItems'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..= GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
-> Int
getInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1UsageGte GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
obj)

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1 where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
parseJSON = String
-> (Object
    -> Parser
         GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1)
-> Value
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1" (\Object
obj -> (Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1)
-> Parser
     (Int
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1 Parser
  (Int
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1)
-> Parser Int
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'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 'GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1' with all required fields.
mkGetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1 ::
  -- | 'getInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1UsageGte'
  GHC.Types.Int ->
  GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
mkGetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1 :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
mkGetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1 Int
getInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1UsageGte = GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1 :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1 {getInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1UsageGte :: Int
getInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1UsageGte = Int
getInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1UsageGte}

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_items.items.properties.billing_thresholds.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'EmptyString
  | GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1 GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'OneOf1
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants]
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
    -> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'BillingThresholds'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_items.items.properties.metadata.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'EmptyString
  | GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Object Data.Aeson.Types.Internal.Object
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants]
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
    -> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'Metadata'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_items.items.properties.price_data@ in the specification.
data GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData' = GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
  { -- | currency
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Currency :: Data.Text.Internal.Text,
    -- | product
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Product :: Data.Text.Internal.Text,
    -- | recurring
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring',
    -- | tax_behavior
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior :: (GHC.Maybe.Maybe GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'),
    -- | unit_amount
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'UnitAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | unit_amount_decimal
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Maybe Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'UnitAmountDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData']
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData']
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData']
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
    -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData' where
  toJSON :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Value
toJSON GetInvoicesUpcomingParametersQuerySubscriptionItems'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..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Currency GetInvoicesUpcomingParametersQuerySubscriptionItems'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..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Product GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"recurring" Text
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_behavior" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior GetInvoicesUpcomingParametersQuerySubscriptionItems'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..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'UnitAmount GetInvoicesUpcomingParametersQuerySubscriptionItems'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..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Maybe Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'UnitAmountDecimal GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Encoding
toEncoding GetInvoicesUpcomingParametersQuerySubscriptionItems'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..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Currency GetInvoicesUpcomingParametersQuerySubscriptionItems'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..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Product GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"recurring" Text
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_behavior" Text
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior GetInvoicesUpcomingParametersQuerySubscriptionItems'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..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'UnitAmount GetInvoicesUpcomingParametersQuerySubscriptionItems'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..= GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
-> Maybe Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'UnitAmountDecimal GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData' where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
parseJSON = String
-> (Object
    -> Parser
         GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
-> Value
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'" (\Object
obj -> ((((((Text
 -> Text
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
 -> Maybe
      GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
 -> Maybe Int
 -> Maybe Text
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
-> Parser
     (Text
      -> Text
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData' Parser
  (Text
   -> Text
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
-> Parser Text
-> Parser
     (Text
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'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
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
-> Parser Text
-> Parser
     (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
      -> Maybe
           GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'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
  (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
   -> Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"recurring")) Parser
  (Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_behavior")) Parser
  (Maybe Int
   -> Maybe Text
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'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
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData')
-> Parser (Maybe Text)
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'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 'GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'' with all required fields.
mkGetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData' ::
  -- | 'getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Currency'
  Data.Text.Internal.Text ->
  -- | 'getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Product'
  Data.Text.Internal.Text ->
  -- | 'getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
  GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring' ->
  GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
mkGetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData' :: Text
-> Text
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
mkGetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData' Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Currency Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Product GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring =
  GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData' :: Text
-> Text
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Maybe
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'
    { getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Currency :: Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Currency = Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Currency,
      getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Product :: Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Product = Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Product,
      getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring = GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring,
      getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior :: Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior = Maybe
  GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'UnitAmount :: Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'UnitAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'UnitAmountDecimal :: Maybe Text
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'UnitAmountDecimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_items.items.properties.price_data.properties.recurring@ in the specification.
data GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring' = GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
  { -- | interval
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval',
    -- | interval_count
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'IntervalCount :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring']
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring']
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring']
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> ShowS
GHC.Show.Show,
      GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
    -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
-> Bool
GHC.Classes.Eq
    )

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

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring' where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
parseJSON = String
-> (Object
    -> Parser
         GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring')
-> Value
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'" (\Object
obj -> ((GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
 -> Maybe Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring')
-> Parser
     (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
      -> Maybe Int
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> Maybe Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring' Parser
  (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
   -> Maybe Int
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring')
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> Parser
     (Maybe Int
      -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"interval")) Parser
  (Maybe Int
   -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring')
-> Parser (Maybe Int)
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'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 'GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'' with all required fields.
mkGetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring' ::
  -- | 'getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
  GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval' ->
  GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
mkGetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring' :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
mkGetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring' GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval =
  GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring' :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> Maybe Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'
    { getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval = GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval,
      getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'IntervalCount :: Maybe Int
getInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'IntervalCount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_items.items.properties.price_data.properties.recurring.properties.interval@ in the specification.
data GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    GetInvoicesUpcomingParametersQuerySubscriptionItems'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.
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"day"@
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'EnumDay
  | -- | Represents the JSON value @"month"@
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'EnumMonth
  | -- | Represents the JSON value @"week"@
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'EnumWeek
  | -- | Represents the JSON value @"year"@
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'EnumYear
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval']
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval']
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval']
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
    -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval' where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
parseJSON Value
val =
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'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" -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'EnumDay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"month" -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'EnumMonth
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"week" -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'EnumWeek
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"year" -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'EnumYear
            | Bool
GHC.Base.otherwise -> Value
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'Recurring'Interval'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_items.items.properties.price_data.properties.tax_behavior@ in the specification.
data GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    GetInvoicesUpcomingParametersQuerySubscriptionItems'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.
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"exclusive"@
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'EnumExclusive
  | -- | Represents the JSON value @"inclusive"@
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'EnumInclusive
  | -- | Represents the JSON value @"unspecified"@
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'EnumUnspecified
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior']
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior']
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior']
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
    -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior' where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
parseJSON Value
val =
    GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionItems'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" -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'EnumExclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"inclusive" -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'EnumInclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unspecified" -> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'EnumUnspecified
            | Bool
GHC.Base.otherwise -> Value
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'
GetInvoicesUpcomingParametersQuerySubscriptionItems'PriceData'TaxBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_items.items.properties.tax_rates.anyOf@ in the specification.
data GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
  = -- | Represents the JSON value @""@
    GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'EmptyString
  | GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants]
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
 -> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
    -> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionItems'TaxRates'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_proration_behavior@ in the specification.
--
-- Represents the parameter named \'subscription_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\`.
data GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'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.
    GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"always_invoice"@
    GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'EnumAlwaysInvoice
  | -- | Represents the JSON value @"create_prorations"@
    GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'EnumCreateProrations
  | -- | Represents the JSON value @"none"@
    GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'EnumNone
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior']
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior']
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior']
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior']
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
 -> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
    -> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior' where
  parseJSON :: Value
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
parseJSON Value
val =
    GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
-> Parser
     GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
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" -> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'EnumAlwaysInvoice
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"create_prorations" -> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'EnumCreateProrations
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'EnumNone
            | Bool
GHC.Base.otherwise -> Value
-> GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'
GetInvoicesUpcomingParametersQuerySubscriptionProrationBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/upcoming.GET.parameters.properties.querySubscription_trial_end.anyOf@ in the specification.
--
-- Represents the parameter named \'subscription_trial_end\'
--
-- If provided, the invoice returned will preview updating or creating a subscription with that trial end. If set, one of \`subscription_items\` or \`subscription\` is required.
data GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
  = -- | Represents the JSON value @"now"@
    GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Now
  | GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Int GHC.Types.Int
  deriving (Int
-> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> ShowS
[GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants]
-> ShowS
GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> String
(Int
 -> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
 -> ShowS)
-> (GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
    -> String)
-> ([GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants]
    -> ShowS)
-> Show
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants]
-> ShowS
$cshowList :: [GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants]
-> ShowS
show :: GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> String
$cshow :: GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> String
showsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> ShowS
$cshowsPrec :: Int
-> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> ShowS
GHC.Show.Show, GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Bool
(GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
 -> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
 -> Bool)
-> (GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
    -> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
    -> Bool)
-> Eq
     GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Bool
$c/= :: GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Bool
== :: GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Bool
$c== :: GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> GetInvoicesUpcomingParametersQuerySubscriptionTrialEnd'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Represents a response of the operation 'getInvoicesUpcoming'.
--
-- 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), 'GetInvoicesUpcomingResponseError' is used.
data GetInvoicesUpcomingResponse
  = -- | Means either no matching case available or a parse error
    GetInvoicesUpcomingResponseError GHC.Base.String
  | -- | Successful response.
    GetInvoicesUpcomingResponse200 Invoice
  | -- | Error response.
    GetInvoicesUpcomingResponseDefault Error
  deriving (Int -> GetInvoicesUpcomingResponse -> ShowS
[GetInvoicesUpcomingResponse] -> ShowS
GetInvoicesUpcomingResponse -> String
(Int -> GetInvoicesUpcomingResponse -> ShowS)
-> (GetInvoicesUpcomingResponse -> String)
-> ([GetInvoicesUpcomingResponse] -> ShowS)
-> Show GetInvoicesUpcomingResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesUpcomingResponse] -> ShowS
$cshowList :: [GetInvoicesUpcomingResponse] -> ShowS
show :: GetInvoicesUpcomingResponse -> String
$cshow :: GetInvoicesUpcomingResponse -> String
showsPrec :: Int -> GetInvoicesUpcomingResponse -> ShowS
$cshowsPrec :: Int -> GetInvoicesUpcomingResponse -> ShowS
GHC.Show.Show, GetInvoicesUpcomingResponse -> GetInvoicesUpcomingResponse -> Bool
(GetInvoicesUpcomingResponse
 -> GetInvoicesUpcomingResponse -> Bool)
-> (GetInvoicesUpcomingResponse
    -> GetInvoicesUpcomingResponse -> Bool)
-> Eq GetInvoicesUpcomingResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesUpcomingResponse -> GetInvoicesUpcomingResponse -> Bool
$c/= :: GetInvoicesUpcomingResponse -> GetInvoicesUpcomingResponse -> Bool
== :: GetInvoicesUpcomingResponse -> GetInvoicesUpcomingResponse -> Bool
$c== :: GetInvoicesUpcomingResponse -> GetInvoicesUpcomingResponse -> Bool
GHC.Classes.Eq)