{-# 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 postInvoicesInvoice
module StripeAPI.Operations.PostInvoicesInvoice where

import qualified Control.Monad.Fail
import qualified Control.Monad.Trans.Reader
import qualified Data.Aeson
import qualified Data.Aeson as Data.Aeson.Encoding.Internal
import qualified Data.Aeson as Data.Aeson.Types
import qualified Data.Aeson as Data.Aeson.Types.FromJSON
import qualified Data.Aeson as Data.Aeson.Types.Internal
import qualified Data.Aeson as Data.Aeson.Types.ToJSON
import qualified Data.ByteString.Char8
import qualified Data.ByteString.Char8 as Data.ByteString.Internal
import qualified Data.Either
import qualified Data.Functor
import qualified Data.Scientific
import qualified Data.Text
import qualified Data.Text.Internal
import qualified Data.Time.Calendar as Data.Time.Calendar.Days
import qualified Data.Time.LocalTime as Data.Time.LocalTime.Internal.ZonedTime
import qualified Data.Vector
import qualified GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified Network.HTTP.Client
import qualified Network.HTTP.Client as Network.HTTP.Client.Request
import qualified Network.HTTP.Client as Network.HTTP.Client.Types
import qualified Network.HTTP.Simple
import qualified Network.HTTP.Types
import qualified Network.HTTP.Types as Network.HTTP.Types.Status
import qualified Network.HTTP.Types as Network.HTTP.Types.URI
import qualified StripeAPI.Common
import StripeAPI.Types
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | > POST /v1/invoices/{invoice}
--
-- \<p>Draft invoices are fully editable. Once an invoice is \<a href=\"\/docs\/billing\/invoices\/workflow\#finalized\">finalized\<\/a>,
-- monetary values, as well as \<code>collection_method\<\/code>, become uneditable.\<\/p>
--
-- \<p>If you would like to stop the Stripe Billing engine from automatically finalizing, reattempting payments on,
-- sending reminders for, or \<a href=\"\/docs\/billing\/invoices\/reconciliation\">automatically reconciling\<\/a> invoices, pass
-- \<code>auto_advance=false\<\/code>.\<\/p>
postInvoicesInvoice ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | invoice | Constraints: Maximum length of 5000
  Data.Text.Internal.Text ->
  -- | The request body to send
  GHC.Maybe.Maybe PostInvoicesInvoiceRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.StripeT m (Network.HTTP.Client.Types.Response PostInvoicesInvoiceResponse)
postInvoicesInvoice :: Text
-> Maybe PostInvoicesInvoiceRequestBody
-> StripeT m (Response PostInvoicesInvoiceResponse)
postInvoicesInvoice
  Text
invoice
  Maybe PostInvoicesInvoiceRequestBody
body =
    (Response ByteString -> Response PostInvoicesInvoiceResponse)
-> StripeT m (Response ByteString)
-> StripeT m (Response PostInvoicesInvoiceResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
      ( \Response ByteString
response_0 ->
          (ByteString -> PostInvoicesInvoiceResponse)
-> Response ByteString -> Response PostInvoicesInvoiceResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
            ( (String -> PostInvoicesInvoiceResponse)
-> (PostInvoicesInvoiceResponse -> PostInvoicesInvoiceResponse)
-> Either String PostInvoicesInvoiceResponse
-> PostInvoicesInvoiceResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> PostInvoicesInvoiceResponse
PostInvoicesInvoiceResponseError PostInvoicesInvoiceResponse -> PostInvoicesInvoiceResponse
forall a. a -> a
GHC.Base.id
                (Either String PostInvoicesInvoiceResponse
 -> PostInvoicesInvoiceResponse)
-> (ByteString -> Either String PostInvoicesInvoiceResponse)
-> ByteString
-> PostInvoicesInvoiceResponse
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 -> PostInvoicesInvoiceResponse
PostInvoicesInvoiceResponse200
                                       (Invoice -> PostInvoicesInvoiceResponse)
-> Either String Invoice
-> Either String PostInvoicesInvoiceResponse
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 -> PostInvoicesInvoiceResponse
PostInvoicesInvoiceResponseDefault
                                       (Error -> PostInvoicesInvoiceResponse)
-> Either String Error -> Either String PostInvoicesInvoiceResponse
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 PostInvoicesInvoiceResponse
forall a b. a -> Either a b
Data.Either.Left String
"Missing default response type"
                           )
                  Response ByteString
response_0
            )
            Response ByteString
response_0
      )
      (Text
-> Text
-> [QueryParameter]
-> Maybe PostInvoicesInvoiceRequestBody
-> RequestBodyEncoding
-> StripeT m (Response ByteString)
forall (m :: * -> *) body.
(MonadHTTP m, ToJSON body) =>
Text
-> Text
-> [QueryParameter]
-> Maybe body
-> RequestBodyEncoding
-> StripeT m (Response ByteString)
StripeAPI.Common.doBodyCallWithConfigurationM (Text -> Text
Data.Text.toUpper (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
GHC.Base.$ String -> Text
Data.Text.pack String
"POST") (String -> Text
Data.Text.pack (String
"/v1/invoices/" String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (ByteString -> String
Data.ByteString.Char8.unpack (Bool -> ByteString -> ByteString
Network.HTTP.Types.URI.urlEncode Bool
GHC.Types.True (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ (String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> String -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ Text -> String
forall a. StringifyModel a => a -> String
StripeAPI.Common.stringifyModel Text
invoice)) String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ String
""))) [QueryParameter]
forall a. Monoid a => a
GHC.Base.mempty Maybe PostInvoicesInvoiceRequestBody
body RequestBodyEncoding
StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostInvoicesInvoiceRequestBody = PostInvoicesInvoiceRequestBody
  { -- | account_tax_ids: The account tax IDs associated with the invoice. Only editable when the invoice is a draft.
    PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
postInvoicesInvoiceRequestBodyAccountTaxIds :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants),
    -- | application_fee_amount: A fee in %s that will be applied to the invoice and transferred to the application owner\'s Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees [documentation](https:\/\/stripe.com\/docs\/billing\/invoices\/connect\#collecting-fees).
    PostInvoicesInvoiceRequestBody -> Maybe Int
postInvoicesInvoiceRequestBodyApplicationFeeAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | auto_advance: Controls whether Stripe will perform [automatic collection](https:\/\/stripe.com\/docs\/billing\/invoices\/workflow\/\#auto_advance) of the invoice.
    PostInvoicesInvoiceRequestBody -> Maybe Bool
postInvoicesInvoiceRequestBodyAutoAdvance :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | automatic_tax: Settings for automatic tax lookup for this invoice.
    PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
postInvoicesInvoiceRequestBodyAutomaticTax :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'),
    -- | collection_method: Either \`charge_automatically\` or \`send_invoice\`. This field can be updated only on \`draft\` invoices.
    PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
postInvoicesInvoiceRequestBodyCollectionMethod :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'),
    -- | custom_fields: A list of up to 4 custom fields to be displayed on the invoice. If a value for \`custom_fields\` is specified, the list specified will replace the existing custom field list on this invoice. Pass an empty string to remove previously-defined fields.
    PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
postInvoicesInvoiceRequestBodyCustomFields :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants),
    -- | days_until_due: The number of days from which the invoice is created until it is due. Only valid for invoices where \`collection_method=send_invoice\`. This field can only be updated on \`draft\` invoices.
    PostInvoicesInvoiceRequestBody -> Maybe Int
postInvoicesInvoiceRequestBodyDaysUntilDue :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | default_payment_method: ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription\'s default payment method, if any, or to the default payment method in the customer\'s invoice settings.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyDefaultPaymentMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_source: ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription\'s default source, if any, or to the customer\'s default source.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyDefaultSource :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_tax_rates: The tax rates that will apply to any line item that does not have \`tax_rates\` set. Pass an empty string to remove previously-defined tax rates.
    PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
postInvoicesInvoiceRequestBodyDefaultTaxRates :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants),
    -- | description: An arbitrary string attached to the object. Often useful for displaying to users. Referenced as \'memo\' in the Dashboard.
    --
    -- Constraints:
    --
    -- * Maximum length of 1500
    PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyDescription :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | discounts: The discounts that will apply to the invoice. Pass an empty string to remove previously-defined discounts.
    PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
postInvoicesInvoiceRequestBodyDiscounts :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants),
    -- | due_date: The date on which payment for this invoice is due. Only valid for invoices where \`collection_method=send_invoice\`. This field can only be updated on \`draft\` invoices.
    PostInvoicesInvoiceRequestBody -> Maybe Int
postInvoicesInvoiceRequestBodyDueDate :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | expand: Specifies which fields in the response should be expanded.
    PostInvoicesInvoiceRequestBody -> Maybe [Text]
postInvoicesInvoiceRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | footer: Footer to be displayed on the invoice.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyFooter :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`.
    PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
postInvoicesInvoiceRequestBodyMetadata :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants),
    -- | on_behalf_of: The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https:\/\/stripe.com\/docs\/billing\/invoices\/connect) documentation for details.
    PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
postInvoicesInvoiceRequestBodyOnBehalfOf :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants),
    -- | payment_settings: Configuration settings for the PaymentIntent that is generated when the invoice is finalized.
    PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
postInvoicesInvoiceRequestBodyPaymentSettings :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'),
    -- | statement_descriptor: Extra information about a charge for the customer\'s credit card statement. It must contain at least one letter. If not specified and this invoice is part of a subscription, the default \`statement_descriptor\` will be set to the first subscription item\'s product\'s \`statement_descriptor\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 22
    PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyStatementDescriptor :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | transfer_data: If specified, the funds from the invoice will be transferred to the destination and the ID of the resulting transfer will be found on the invoice\'s charge. This will be unset if you POST an empty value.
    PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
postInvoicesInvoiceRequestBodyTransferData :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants)
  }
  deriving
    ( Int -> PostInvoicesInvoiceRequestBody -> String -> String
[PostInvoicesInvoiceRequestBody] -> String -> String
PostInvoicesInvoiceRequestBody -> String
(Int -> PostInvoicesInvoiceRequestBody -> String -> String)
-> (PostInvoicesInvoiceRequestBody -> String)
-> ([PostInvoicesInvoiceRequestBody] -> String -> String)
-> Show PostInvoicesInvoiceRequestBody
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBody] -> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBody] -> String -> String
show :: PostInvoicesInvoiceRequestBody -> String
$cshow :: PostInvoicesInvoiceRequestBody -> String
showsPrec :: Int -> PostInvoicesInvoiceRequestBody -> String -> String
$cshowsPrec :: Int -> PostInvoicesInvoiceRequestBody -> String -> String
GHC.Show.Show,
      PostInvoicesInvoiceRequestBody
-> PostInvoicesInvoiceRequestBody -> Bool
(PostInvoicesInvoiceRequestBody
 -> PostInvoicesInvoiceRequestBody -> Bool)
-> (PostInvoicesInvoiceRequestBody
    -> PostInvoicesInvoiceRequestBody -> Bool)
-> Eq PostInvoicesInvoiceRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBody
-> PostInvoicesInvoiceRequestBody -> Bool
$c/= :: PostInvoicesInvoiceRequestBody
-> PostInvoicesInvoiceRequestBody -> Bool
== :: PostInvoicesInvoiceRequestBody
-> PostInvoicesInvoiceRequestBody -> Bool
$c== :: PostInvoicesInvoiceRequestBody
-> PostInvoicesInvoiceRequestBody -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBody where
  toJSON :: PostInvoicesInvoiceRequestBody -> Value
toJSON PostInvoicesInvoiceRequestBody
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account_tax_ids" Text
-> Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
postInvoicesInvoiceRequestBodyAccountTaxIds PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"application_fee_amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Int
postInvoicesInvoiceRequestBodyApplicationFeeAmount PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"auto_advance" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Bool
postInvoicesInvoiceRequestBodyAutoAdvance PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"automatic_tax" Text -> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
postInvoicesInvoiceRequestBodyAutomaticTax PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"collection_method" Text
-> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
postInvoicesInvoiceRequestBodyCollectionMethod PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"custom_fields" Text
-> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
postInvoicesInvoiceRequestBodyCustomFields PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"days_until_due" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Int
postInvoicesInvoiceRequestBodyDaysUntilDue PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_payment_method" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyDefaultPaymentMethod PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_source" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyDefaultSource PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_tax_rates" Text
-> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
postInvoicesInvoiceRequestBodyDefaultTaxRates PostInvoicesInvoiceRequestBody
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..= PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyDescription PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"discounts" Text
-> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
postInvoicesInvoiceRequestBodyDiscounts PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"due_date" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Int
postInvoicesInvoiceRequestBodyDueDate PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"expand" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe [Text]
postInvoicesInvoiceRequestBodyExpand PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"footer" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyFooter PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text
-> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
postInvoicesInvoiceRequestBodyMetadata PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"on_behalf_of" Text
-> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
postInvoicesInvoiceRequestBodyOnBehalfOf PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_settings" Text
-> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
postInvoicesInvoiceRequestBodyPaymentSettings PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"statement_descriptor" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyStatementDescriptor PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transfer_data" Text
-> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
postInvoicesInvoiceRequestBodyTransferData PostInvoicesInvoiceRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostInvoicesInvoiceRequestBody -> Encoding
toEncoding PostInvoicesInvoiceRequestBody
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account_tax_ids" Text
-> Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
postInvoicesInvoiceRequestBodyAccountTaxIds PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"application_fee_amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Int
postInvoicesInvoiceRequestBodyApplicationFeeAmount PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"auto_advance" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Bool
postInvoicesInvoiceRequestBodyAutoAdvance PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"automatic_tax" Text -> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
postInvoicesInvoiceRequestBodyAutomaticTax PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"collection_method" Text
-> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
postInvoicesInvoiceRequestBodyCollectionMethod PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"custom_fields" Text
-> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
postInvoicesInvoiceRequestBodyCustomFields PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"days_until_due" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Int
postInvoicesInvoiceRequestBodyDaysUntilDue PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_payment_method" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyDefaultPaymentMethod PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_source" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyDefaultSource PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_tax_rates" Text
-> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
postInvoicesInvoiceRequestBodyDefaultTaxRates PostInvoicesInvoiceRequestBody
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..= PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyDescription PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"discounts" Text
-> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
postInvoicesInvoiceRequestBodyDiscounts PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"due_date" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Int
postInvoicesInvoiceRequestBodyDueDate PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"expand" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe [Text]
postInvoicesInvoiceRequestBodyExpand PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"footer" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyFooter PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text
-> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
postInvoicesInvoiceRequestBodyMetadata PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"on_behalf_of" Text
-> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
postInvoicesInvoiceRequestBodyOnBehalfOf PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_settings" Text
-> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
postInvoicesInvoiceRequestBodyPaymentSettings PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"statement_descriptor" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody -> Maybe Text
postInvoicesInvoiceRequestBodyStatementDescriptor PostInvoicesInvoiceRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"transfer_data" Text
-> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBody
-> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
postInvoicesInvoiceRequestBodyTransferData PostInvoicesInvoiceRequestBody
obj))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostInvoicesInvoiceRequestBody where
  parseJSON :: Value -> Parser PostInvoicesInvoiceRequestBody
parseJSON = String
-> (Object -> Parser PostInvoicesInvoiceRequestBody)
-> Value
-> Parser PostInvoicesInvoiceRequestBody
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostInvoicesInvoiceRequestBody" (\Object
obj -> ((((((((((((((((((((Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
 -> Maybe Int
 -> Maybe Bool
 -> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
 -> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
 -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
 -> Maybe Text
 -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
 -> Maybe Int
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
 -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
 -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
 -> Maybe Text
 -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
 -> PostInvoicesInvoiceRequestBody)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
      -> Maybe Int
      -> Maybe Bool
      -> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
      -> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
      -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> Maybe Int
-> Maybe Bool
-> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
-> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
-> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> Maybe Text
-> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
-> Maybe Int
-> Maybe [Text]
-> Maybe Text
-> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
-> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
-> Maybe Text
-> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
-> PostInvoicesInvoiceRequestBody
PostInvoicesInvoiceRequestBody Parser
  (Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
   -> Maybe Int
   -> Maybe Bool
   -> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
   -> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
   -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants)
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
      -> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
      -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account_tax_ids")) Parser
  (Maybe Int
   -> Maybe Bool
   -> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
   -> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
   -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
      -> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
      -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
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
"application_fee_amount")) Parser
  (Maybe Bool
   -> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
   -> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
   -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe Bool)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
      -> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
      -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
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
"auto_advance")) Parser
  (Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
   -> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
   -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe PostInvoicesInvoiceRequestBodyAutomaticTax')
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
      -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostInvoicesInvoiceRequestBodyAutomaticTax')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"automatic_tax")) Parser
  (Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
   -> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe PostInvoicesInvoiceRequestBodyCollectionMethod')
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostInvoicesInvoiceRequestBodyCollectionMethod')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"collection_method")) Parser
  (Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"custom_fields")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"days_until_due")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_payment_method")) Parser
  (Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_source")) Parser
  (Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants)
-> Parser
     (Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_tax_rates")) Parser
  (Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
      -> Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
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 PostInvoicesInvoiceRequestBodyDiscounts'Variants
   -> Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants)
-> Parser
     (Maybe Int
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"discounts")) Parser
  (Maybe Int
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe Int)
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
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
"due_date")) Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"expand")) Parser
  (Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
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
"footer")) Parser
  (Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
      -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
   -> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
      -> Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"on_behalf_of")) Parser
  (Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
   -> Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe PostInvoicesInvoiceRequestBodyPaymentSettings')
-> Parser
     (Maybe Text
      -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostInvoicesInvoiceRequestBodyPaymentSettings')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_settings")) Parser
  (Maybe Text
   -> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
      -> PostInvoicesInvoiceRequestBody)
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
"statement_descriptor")) Parser
  (Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
   -> PostInvoicesInvoiceRequestBody)
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants)
-> Parser PostInvoicesInvoiceRequestBody
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"transfer_data"))

-- | Create a new 'PostInvoicesInvoiceRequestBody' with all required fields.
mkPostInvoicesInvoiceRequestBody :: PostInvoicesInvoiceRequestBody
mkPostInvoicesInvoiceRequestBody :: PostInvoicesInvoiceRequestBody
mkPostInvoicesInvoiceRequestBody =
  PostInvoicesInvoiceRequestBody :: Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> Maybe Int
-> Maybe Bool
-> Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
-> Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
-> Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> Maybe Text
-> Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
-> Maybe Int
-> Maybe [Text]
-> Maybe Text
-> Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
-> Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
-> Maybe Text
-> Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
-> PostInvoicesInvoiceRequestBody
PostInvoicesInvoiceRequestBody
    { postInvoicesInvoiceRequestBodyAccountTaxIds :: Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
postInvoicesInvoiceRequestBodyAccountTaxIds = Maybe PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyApplicationFeeAmount :: Maybe Int
postInvoicesInvoiceRequestBodyApplicationFeeAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyAutoAdvance :: Maybe Bool
postInvoicesInvoiceRequestBodyAutoAdvance = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyAutomaticTax :: Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
postInvoicesInvoiceRequestBodyAutomaticTax = Maybe PostInvoicesInvoiceRequestBodyAutomaticTax'
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyCollectionMethod :: Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
postInvoicesInvoiceRequestBodyCollectionMethod = Maybe PostInvoicesInvoiceRequestBodyCollectionMethod'
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyCustomFields :: Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
postInvoicesInvoiceRequestBodyCustomFields = Maybe PostInvoicesInvoiceRequestBodyCustomFields'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyDaysUntilDue :: Maybe Int
postInvoicesInvoiceRequestBodyDaysUntilDue = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyDefaultPaymentMethod :: Maybe Text
postInvoicesInvoiceRequestBodyDefaultPaymentMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyDefaultSource :: Maybe Text
postInvoicesInvoiceRequestBodyDefaultSource = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyDefaultTaxRates :: Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
postInvoicesInvoiceRequestBodyDefaultTaxRates = Maybe PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyDescription :: Maybe Text
postInvoicesInvoiceRequestBodyDescription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyDiscounts :: Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
postInvoicesInvoiceRequestBodyDiscounts = Maybe PostInvoicesInvoiceRequestBodyDiscounts'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyDueDate :: Maybe Int
postInvoicesInvoiceRequestBodyDueDate = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyExpand :: Maybe [Text]
postInvoicesInvoiceRequestBodyExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyFooter :: Maybe Text
postInvoicesInvoiceRequestBodyFooter = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyMetadata :: Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
postInvoicesInvoiceRequestBodyMetadata = Maybe PostInvoicesInvoiceRequestBodyMetadata'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyOnBehalfOf :: Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
postInvoicesInvoiceRequestBodyOnBehalfOf = Maybe PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyPaymentSettings :: Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
postInvoicesInvoiceRequestBodyPaymentSettings = Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyStatementDescriptor :: Maybe Text
postInvoicesInvoiceRequestBodyStatementDescriptor = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyTransferData :: Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
postInvoicesInvoiceRequestBodyTransferData = Maybe PostInvoicesInvoiceRequestBodyTransferData'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.account_tax_ids.anyOf@ in the specification.
--
-- The account tax IDs associated with the invoice. Only editable when the invoice is a draft.
data PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
  = -- | Represents the JSON value @""@
    PostInvoicesInvoiceRequestBodyAccountTaxIds'EmptyString
  | PostInvoicesInvoiceRequestBodyAccountTaxIds'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> String
-> String
[PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants]
-> String -> String
PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> String
(Int
 -> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> String)
-> ([PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants]
    -> String -> String)
-> Show PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> String
$cshow :: PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> Bool
(PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
 -> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> Bool)
-> (PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
    -> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> Bool)
-> Eq PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> Bool
$c/= :: PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> Bool
== :: PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> Bool
$c== :: PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants
-> PostInvoicesInvoiceRequestBodyAccountTaxIds'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.automatic_tax@ in the specification.
--
-- Settings for automatic tax lookup for this invoice.
data PostInvoicesInvoiceRequestBodyAutomaticTax' = PostInvoicesInvoiceRequestBodyAutomaticTax'
  { -- | enabled
    PostInvoicesInvoiceRequestBodyAutomaticTax' -> Bool
postInvoicesInvoiceRequestBodyAutomaticTax'Enabled :: GHC.Types.Bool
  }
  deriving
    ( Int
-> PostInvoicesInvoiceRequestBodyAutomaticTax' -> String -> String
[PostInvoicesInvoiceRequestBodyAutomaticTax'] -> String -> String
PostInvoicesInvoiceRequestBodyAutomaticTax' -> String
(Int
 -> PostInvoicesInvoiceRequestBodyAutomaticTax' -> String -> String)
-> (PostInvoicesInvoiceRequestBodyAutomaticTax' -> String)
-> ([PostInvoicesInvoiceRequestBodyAutomaticTax']
    -> String -> String)
-> Show PostInvoicesInvoiceRequestBodyAutomaticTax'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyAutomaticTax'] -> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyAutomaticTax'] -> String -> String
show :: PostInvoicesInvoiceRequestBodyAutomaticTax' -> String
$cshow :: PostInvoicesInvoiceRequestBodyAutomaticTax' -> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyAutomaticTax' -> String -> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyAutomaticTax' -> String -> String
GHC.Show.Show,
      PostInvoicesInvoiceRequestBodyAutomaticTax'
-> PostInvoicesInvoiceRequestBodyAutomaticTax' -> Bool
(PostInvoicesInvoiceRequestBodyAutomaticTax'
 -> PostInvoicesInvoiceRequestBodyAutomaticTax' -> Bool)
-> (PostInvoicesInvoiceRequestBodyAutomaticTax'
    -> PostInvoicesInvoiceRequestBodyAutomaticTax' -> Bool)
-> Eq PostInvoicesInvoiceRequestBodyAutomaticTax'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyAutomaticTax'
-> PostInvoicesInvoiceRequestBodyAutomaticTax' -> Bool
$c/= :: PostInvoicesInvoiceRequestBodyAutomaticTax'
-> PostInvoicesInvoiceRequestBodyAutomaticTax' -> Bool
== :: PostInvoicesInvoiceRequestBodyAutomaticTax'
-> PostInvoicesInvoiceRequestBodyAutomaticTax' -> Bool
$c== :: PostInvoicesInvoiceRequestBodyAutomaticTax'
-> PostInvoicesInvoiceRequestBodyAutomaticTax' -> Bool
GHC.Classes.Eq
    )

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

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

-- | Defines the enum schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.collection_method@ in the specification.
--
-- Either \`charge_automatically\` or \`send_invoice\`. This field can be updated only on \`draft\` invoices.
data PostInvoicesInvoiceRequestBodyCollectionMethod'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostInvoicesInvoiceRequestBodyCollectionMethod'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.
    PostInvoicesInvoiceRequestBodyCollectionMethod'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"charge_automatically"@
    PostInvoicesInvoiceRequestBodyCollectionMethod'EnumChargeAutomatically
  | -- | Represents the JSON value @"send_invoice"@
    PostInvoicesInvoiceRequestBodyCollectionMethod'EnumSendInvoice
  deriving (Int
-> PostInvoicesInvoiceRequestBodyCollectionMethod'
-> String
-> String
[PostInvoicesInvoiceRequestBodyCollectionMethod']
-> String -> String
PostInvoicesInvoiceRequestBodyCollectionMethod' -> String
(Int
 -> PostInvoicesInvoiceRequestBodyCollectionMethod'
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyCollectionMethod' -> String)
-> ([PostInvoicesInvoiceRequestBodyCollectionMethod']
    -> String -> String)
-> Show PostInvoicesInvoiceRequestBodyCollectionMethod'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyCollectionMethod']
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyCollectionMethod']
-> String -> String
show :: PostInvoicesInvoiceRequestBodyCollectionMethod' -> String
$cshow :: PostInvoicesInvoiceRequestBodyCollectionMethod' -> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyCollectionMethod'
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyCollectionMethod'
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyCollectionMethod'
-> PostInvoicesInvoiceRequestBodyCollectionMethod' -> Bool
(PostInvoicesInvoiceRequestBodyCollectionMethod'
 -> PostInvoicesInvoiceRequestBodyCollectionMethod' -> Bool)
-> (PostInvoicesInvoiceRequestBodyCollectionMethod'
    -> PostInvoicesInvoiceRequestBodyCollectionMethod' -> Bool)
-> Eq PostInvoicesInvoiceRequestBodyCollectionMethod'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyCollectionMethod'
-> PostInvoicesInvoiceRequestBodyCollectionMethod' -> Bool
$c/= :: PostInvoicesInvoiceRequestBodyCollectionMethod'
-> PostInvoicesInvoiceRequestBodyCollectionMethod' -> Bool
== :: PostInvoicesInvoiceRequestBodyCollectionMethod'
-> PostInvoicesInvoiceRequestBodyCollectionMethod' -> Bool
$c== :: PostInvoicesInvoiceRequestBodyCollectionMethod'
-> PostInvoicesInvoiceRequestBodyCollectionMethod' -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.custom_fields.anyOf.items@ in the specification.
data PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 = PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
  { -- | name
    --
    -- Constraints:
    --
    -- * Maximum length of 30
    PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Name :: Data.Text.Internal.Text,
    -- | value
    --
    -- Constraints:
    --
    -- * Maximum length of 30
    PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Value :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
-> String
-> String
[PostInvoicesInvoiceRequestBodyCustomFields'OneOf1]
-> String -> String
PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> String
(Int
 -> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> String)
-> ([PostInvoicesInvoiceRequestBodyCustomFields'OneOf1]
    -> String -> String)
-> Show PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyCustomFields'OneOf1]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyCustomFields'OneOf1]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> String
$cshow :: PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
-> String
-> String
GHC.Show.Show,
      PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
-> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Bool
(PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
 -> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Bool)
-> (PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
    -> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Bool)
-> Eq PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
-> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Bool
$c/= :: PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
-> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Bool
== :: PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
-> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Bool
$c== :: PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
-> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 where
  toJSON :: PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Value
toJSON PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"name" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Name PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
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..= PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Value PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Encoding
toEncoding PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"name" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Name PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
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..= PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 -> Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Value PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
obj))

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

-- | Create a new 'PostInvoicesInvoiceRequestBodyCustomFields'OneOf1' with all required fields.
mkPostInvoicesInvoiceRequestBodyCustomFields'OneOf1 ::
  -- | 'postInvoicesInvoiceRequestBodyCustomFields'OneOf1Name'
  Data.Text.Internal.Text ->
  -- | 'postInvoicesInvoiceRequestBodyCustomFields'OneOf1Value'
  Data.Text.Internal.Text ->
  PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
mkPostInvoicesInvoiceRequestBodyCustomFields'OneOf1 :: Text -> Text -> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
mkPostInvoicesInvoiceRequestBodyCustomFields'OneOf1 Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Name Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Value =
  PostInvoicesInvoiceRequestBodyCustomFields'OneOf1 :: Text -> Text -> PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
PostInvoicesInvoiceRequestBodyCustomFields'OneOf1
    { postInvoicesInvoiceRequestBodyCustomFields'OneOf1Name :: Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Name = Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Name,
      postInvoicesInvoiceRequestBodyCustomFields'OneOf1Value :: Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Value = Text
postInvoicesInvoiceRequestBodyCustomFields'OneOf1Value
    }

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.custom_fields.anyOf@ in the specification.
--
-- A list of up to 4 custom fields to be displayed on the invoice. If a value for \`custom_fields\` is specified, the list specified will replace the existing custom field list on this invoice. Pass an empty string to remove previously-defined fields.
data PostInvoicesInvoiceRequestBodyCustomFields'Variants
  = -- | Represents the JSON value @""@
    PostInvoicesInvoiceRequestBodyCustomFields'EmptyString
  | PostInvoicesInvoiceRequestBodyCustomFields'ListTPostInvoicesInvoiceRequestBodyCustomFields'OneOf1 ([PostInvoicesInvoiceRequestBodyCustomFields'OneOf1])
  deriving (Int
-> PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> String
-> String
[PostInvoicesInvoiceRequestBodyCustomFields'Variants]
-> String -> String
PostInvoicesInvoiceRequestBodyCustomFields'Variants -> String
(Int
 -> PostInvoicesInvoiceRequestBodyCustomFields'Variants
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyCustomFields'Variants -> String)
-> ([PostInvoicesInvoiceRequestBodyCustomFields'Variants]
    -> String -> String)
-> Show PostInvoicesInvoiceRequestBodyCustomFields'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyCustomFields'Variants]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyCustomFields'Variants]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyCustomFields'Variants -> String
$cshow :: PostInvoicesInvoiceRequestBodyCustomFields'Variants -> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> PostInvoicesInvoiceRequestBodyCustomFields'Variants -> Bool
(PostInvoicesInvoiceRequestBodyCustomFields'Variants
 -> PostInvoicesInvoiceRequestBodyCustomFields'Variants -> Bool)
-> (PostInvoicesInvoiceRequestBodyCustomFields'Variants
    -> PostInvoicesInvoiceRequestBodyCustomFields'Variants -> Bool)
-> Eq PostInvoicesInvoiceRequestBodyCustomFields'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> PostInvoicesInvoiceRequestBodyCustomFields'Variants -> Bool
$c/= :: PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> PostInvoicesInvoiceRequestBodyCustomFields'Variants -> Bool
== :: PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> PostInvoicesInvoiceRequestBodyCustomFields'Variants -> Bool
$c== :: PostInvoicesInvoiceRequestBodyCustomFields'Variants
-> PostInvoicesInvoiceRequestBodyCustomFields'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_tax_rates.anyOf@ in the specification.
--
-- The tax rates that will apply to any line item that does not have \`tax_rates\` set. Pass an empty string to remove previously-defined tax rates.
data PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
  = -- | Represents the JSON value @""@
    PostInvoicesInvoiceRequestBodyDefaultTaxRates'EmptyString
  | PostInvoicesInvoiceRequestBodyDefaultTaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> String
-> String
[PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants]
-> String -> String
PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants -> String
(Int
 -> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
    -> String)
-> ([PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants]
    -> String -> String)
-> Show PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants -> String
$cshow :: PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants -> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants -> Bool
(PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
 -> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants -> Bool)
-> (PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
    -> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants -> Bool)
-> Eq PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants -> Bool
$c/= :: PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants -> Bool
== :: PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants -> Bool
$c== :: PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants
-> PostInvoicesInvoiceRequestBodyDefaultTaxRates'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.discounts.anyOf.items@ in the specification.
data PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 = PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
  { -- | coupon
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Maybe Text
postInvoicesInvoiceRequestBodyDiscounts'OneOf1Coupon :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | discount
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Maybe Text
postInvoicesInvoiceRequestBodyDiscounts'OneOf1Discount :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
-> String
-> String
[PostInvoicesInvoiceRequestBodyDiscounts'OneOf1]
-> String -> String
PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> String
(Int
 -> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> String)
-> ([PostInvoicesInvoiceRequestBodyDiscounts'OneOf1]
    -> String -> String)
-> Show PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyDiscounts'OneOf1]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyDiscounts'OneOf1]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> String
$cshow :: PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
-> String
-> String
GHC.Show.Show,
      PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
-> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Bool
(PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
 -> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Bool)
-> (PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
    -> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Bool)
-> Eq PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
-> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Bool
$c/= :: PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
-> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Bool
== :: PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
-> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Bool
$c== :: PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
-> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 where
  toJSON :: PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Value
toJSON PostInvoicesInvoiceRequestBodyDiscounts'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..= PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Maybe Text
postInvoicesInvoiceRequestBodyDiscounts'OneOf1Coupon PostInvoicesInvoiceRequestBodyDiscounts'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..= PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Maybe Text
postInvoicesInvoiceRequestBodyDiscounts'OneOf1Discount PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Encoding
toEncoding PostInvoicesInvoiceRequestBodyDiscounts'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..= PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Maybe Text
postInvoicesInvoiceRequestBodyDiscounts'OneOf1Coupon PostInvoicesInvoiceRequestBodyDiscounts'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..= PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 -> Maybe Text
postInvoicesInvoiceRequestBodyDiscounts'OneOf1Discount PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 where
  parseJSON :: Value -> Parser PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
parseJSON = String
-> (Object
    -> Parser PostInvoicesInvoiceRequestBodyDiscounts'OneOf1)
-> Value
-> Parser PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostInvoicesInvoiceRequestBodyDiscounts'OneOf1" (\Object
obj -> ((Maybe Text
 -> Maybe Text -> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1)
-> Parser
     (Maybe Text
      -> Maybe Text -> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text -> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 Parser
  (Maybe Text
   -> Maybe Text -> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> PostInvoicesInvoiceRequestBodyDiscounts'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 -> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1)
-> Parser (Maybe Text)
-> Parser PostInvoicesInvoiceRequestBodyDiscounts'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 'PostInvoicesInvoiceRequestBodyDiscounts'OneOf1' with all required fields.
mkPostInvoicesInvoiceRequestBodyDiscounts'OneOf1 :: PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
mkPostInvoicesInvoiceRequestBodyDiscounts'OneOf1 :: PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
mkPostInvoicesInvoiceRequestBodyDiscounts'OneOf1 =
  PostInvoicesInvoiceRequestBodyDiscounts'OneOf1 :: Maybe Text
-> Maybe Text -> PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
PostInvoicesInvoiceRequestBodyDiscounts'OneOf1
    { postInvoicesInvoiceRequestBodyDiscounts'OneOf1Coupon :: Maybe Text
postInvoicesInvoiceRequestBodyDiscounts'OneOf1Coupon = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyDiscounts'OneOf1Discount :: Maybe Text
postInvoicesInvoiceRequestBodyDiscounts'OneOf1Discount = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.discounts.anyOf@ in the specification.
--
-- The discounts that will apply to the invoice. Pass an empty string to remove previously-defined discounts.
data PostInvoicesInvoiceRequestBodyDiscounts'Variants
  = -- | Represents the JSON value @""@
    PostInvoicesInvoiceRequestBodyDiscounts'EmptyString
  | PostInvoicesInvoiceRequestBodyDiscounts'ListTPostInvoicesInvoiceRequestBodyDiscounts'OneOf1 ([PostInvoicesInvoiceRequestBodyDiscounts'OneOf1])
  deriving (Int
-> PostInvoicesInvoiceRequestBodyDiscounts'Variants
-> String
-> String
[PostInvoicesInvoiceRequestBodyDiscounts'Variants]
-> String -> String
PostInvoicesInvoiceRequestBodyDiscounts'Variants -> String
(Int
 -> PostInvoicesInvoiceRequestBodyDiscounts'Variants
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyDiscounts'Variants -> String)
-> ([PostInvoicesInvoiceRequestBodyDiscounts'Variants]
    -> String -> String)
-> Show PostInvoicesInvoiceRequestBodyDiscounts'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyDiscounts'Variants]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyDiscounts'Variants]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyDiscounts'Variants -> String
$cshow :: PostInvoicesInvoiceRequestBodyDiscounts'Variants -> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyDiscounts'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyDiscounts'Variants
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyDiscounts'Variants
-> PostInvoicesInvoiceRequestBodyDiscounts'Variants -> Bool
(PostInvoicesInvoiceRequestBodyDiscounts'Variants
 -> PostInvoicesInvoiceRequestBodyDiscounts'Variants -> Bool)
-> (PostInvoicesInvoiceRequestBodyDiscounts'Variants
    -> PostInvoicesInvoiceRequestBodyDiscounts'Variants -> Bool)
-> Eq PostInvoicesInvoiceRequestBodyDiscounts'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyDiscounts'Variants
-> PostInvoicesInvoiceRequestBodyDiscounts'Variants -> Bool
$c/= :: PostInvoicesInvoiceRequestBodyDiscounts'Variants
-> PostInvoicesInvoiceRequestBodyDiscounts'Variants -> Bool
== :: PostInvoicesInvoiceRequestBodyDiscounts'Variants
-> PostInvoicesInvoiceRequestBodyDiscounts'Variants -> Bool
$c== :: PostInvoicesInvoiceRequestBodyDiscounts'Variants
-> PostInvoicesInvoiceRequestBodyDiscounts'Variants -> Bool
GHC.Classes.Eq)

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

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

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

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.on_behalf_of.anyOf@ in the specification.
--
-- The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https:\/\/stripe.com\/docs\/billing\/invoices\/connect) documentation for details.
data PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
  = -- | Represents the JSON value @""@
    PostInvoicesInvoiceRequestBodyOnBehalfOf'EmptyString
  | PostInvoicesInvoiceRequestBodyOnBehalfOf'Text Data.Text.Internal.Text
  deriving (Int
-> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> String
-> String
[PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants]
-> String -> String
PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> String
(Int
 -> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> String)
-> ([PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants]
    -> String -> String)
-> Show PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> String
$cshow :: PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> Bool
(PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
 -> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> Bool)
-> (PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
    -> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> Bool)
-> Eq PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> Bool
$c/= :: PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> Bool
== :: PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> Bool
$c== :: PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants
-> PostInvoicesInvoiceRequestBodyOnBehalfOf'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_settings@ in the specification.
--
-- Configuration settings for the PaymentIntent that is generated when the invoice is finalized.
data PostInvoicesInvoiceRequestBodyPaymentSettings' = PostInvoicesInvoiceRequestBodyPaymentSettings'
  { -- | payment_method_options
    PostInvoicesInvoiceRequestBodyPaymentSettings'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'),
    -- | payment_method_types
    PostInvoicesInvoiceRequestBodyPaymentSettings'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'Variants)
  }
  deriving
    ( Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'
-> String
-> String
[PostInvoicesInvoiceRequestBodyPaymentSettings']
-> String -> String
PostInvoicesInvoiceRequestBodyPaymentSettings' -> String
(Int
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings' -> String)
-> ([PostInvoicesInvoiceRequestBodyPaymentSettings']
    -> String -> String)
-> Show PostInvoicesInvoiceRequestBodyPaymentSettings'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyPaymentSettings']
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyPaymentSettings']
-> String -> String
show :: PostInvoicesInvoiceRequestBodyPaymentSettings' -> String
$cshow :: PostInvoicesInvoiceRequestBodyPaymentSettings' -> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'
-> String
-> String
GHC.Show.Show,
      PostInvoicesInvoiceRequestBodyPaymentSettings'
-> PostInvoicesInvoiceRequestBodyPaymentSettings' -> Bool
(PostInvoicesInvoiceRequestBodyPaymentSettings'
 -> PostInvoicesInvoiceRequestBodyPaymentSettings' -> Bool)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'
    -> PostInvoicesInvoiceRequestBodyPaymentSettings' -> Bool)
-> Eq PostInvoicesInvoiceRequestBodyPaymentSettings'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'
-> PostInvoicesInvoiceRequestBodyPaymentSettings' -> Bool
$c/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'
-> PostInvoicesInvoiceRequestBodyPaymentSettings' -> Bool
== :: PostInvoicesInvoiceRequestBodyPaymentSettings'
-> PostInvoicesInvoiceRequestBodyPaymentSettings' -> Bool
$c== :: PostInvoicesInvoiceRequestBodyPaymentSettings'
-> PostInvoicesInvoiceRequestBodyPaymentSettings' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBodyPaymentSettings' where
  toJSON :: PostInvoicesInvoiceRequestBodyPaymentSettings' -> Value
toJSON PostInvoicesInvoiceRequestBodyPaymentSettings'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"payment_method_options" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions PostInvoicesInvoiceRequestBodyPaymentSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_types" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes PostInvoicesInvoiceRequestBodyPaymentSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostInvoicesInvoiceRequestBodyPaymentSettings' -> Encoding
toEncoding PostInvoicesInvoiceRequestBodyPaymentSettings'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"payment_method_options" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions PostInvoicesInvoiceRequestBodyPaymentSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"payment_method_types" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes PostInvoicesInvoiceRequestBodyPaymentSettings'
obj))

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

-- | Create a new 'PostInvoicesInvoiceRequestBodyPaymentSettings'' with all required fields.
mkPostInvoicesInvoiceRequestBodyPaymentSettings' :: PostInvoicesInvoiceRequestBodyPaymentSettings'
mkPostInvoicesInvoiceRequestBodyPaymentSettings' :: PostInvoicesInvoiceRequestBodyPaymentSettings'
mkPostInvoicesInvoiceRequestBodyPaymentSettings' =
  PostInvoicesInvoiceRequestBodyPaymentSettings' :: Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'
PostInvoicesInvoiceRequestBodyPaymentSettings'
    { postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions :: Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions = Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes :: Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes = Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_settings.properties.payment_method_options@ in the specification.
data PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions' = PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
  { -- | bancontact
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants),
    -- | card
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants)
  }
  deriving
    ( Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> String
-> String
[PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions']
-> String -> String
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> String
(Int
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
    -> String)
-> ([PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions']
    -> String -> String)
-> Show
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions']
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions']
-> String -> String
show :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> String
$cshow :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> String
-> String
GHC.Show.Show,
      PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Bool
(PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
 -> Bool)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
    -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
    -> Bool)
-> Eq
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Bool
$c/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Bool
== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Bool
$c== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions' where
  toJSON :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Value
toJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"bancontact" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Encoding
toEncoding PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"bancontact" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"card" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions' where
  parseJSON :: Value
-> Parser
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
parseJSON = String
-> (Object
    -> Parser
         PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions')
-> Value
-> Parser
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'" (\Object
obj -> ((Maybe
   PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
 -> Maybe
      PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions')
-> Parser
     (Maybe
        PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
      -> Maybe
           PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
      -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions' Parser
  (Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
   -> Maybe
        PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
   -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions')
-> Parser
     (Maybe
        PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants)
-> Parser
     (Maybe
        PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
      -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bancontact")) Parser
  (Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
   -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions')
-> Parser
     (Maybe
        PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants)
-> Parser
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card"))

-- | Create a new 'PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'' with all required fields.
mkPostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions' :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
mkPostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions' :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
mkPostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions' =
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions' :: Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'
    { postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact :: Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact = Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card :: Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card = Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_settings.properties.payment_method_options.properties.bancontact.anyOf@ in the specification.
data PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1 = PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
  { -- | preferred_language
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage')
  }
  deriving
    ( Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> String
-> String
[PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1]
-> String -> String
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> String
(Int
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
    -> String)
-> ([PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1]
    -> String -> String)
-> Show
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> String
$cshow :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> String
-> String
GHC.Show.Show,
      PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> Bool
(PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
 -> Bool)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
    -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
    -> Bool)
-> Eq
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> Bool
$c/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> Bool
== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> Bool
$c== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1 where
  toJSON :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> Value
toJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"preferred_language" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> Encoding
toEncoding PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"preferred_language" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
obj)

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

-- | Create a new 'PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1' with all required fields.
mkPostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1 :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
mkPostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1 :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
mkPostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1 = PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1 :: Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1 {postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage :: Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage = Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the enum schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_settings.properties.payment_method_options.properties.bancontact.anyOf.properties.preferred_language@ in the specification.
data PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'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.
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"de"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumDe
  | -- | Represents the JSON value @"en"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumEn
  | -- | Represents the JSON value @"fr"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumFr
  | -- | Represents the JSON value @"nl"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumNl
  deriving (Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
-> String
[PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage']
-> String -> String
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
(Int
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
    -> String)
-> ([PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage']
    -> String -> String)
-> Show
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage']
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage']
-> String -> String
show :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
$cshow :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Bool
(PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
 -> Bool)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
    -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
    -> Bool)
-> Eq
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Bool
$c/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Bool
== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Bool
$c== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage' where
  toJSON :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Value
toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'Other Value
val) = Value
val
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumDe) = Value
"de"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumEn) = Value
"en"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumFr) = Value
"fr"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumNl) = Value
"nl"

instance Data.Aeson.Types.FromJSON.FromJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage' where
  parseJSON :: Value
-> Parser
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
parseJSON Value
val =
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Parser
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
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
"de" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumDe
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"en" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumEn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"fr" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumFr
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"nl" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumNl
            | Bool
GHC.Base.otherwise -> Value
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_settings.properties.payment_method_options.properties.bancontact.anyOf@ in the specification.
data PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
  = -- | Represents the JSON value @""@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'EmptyString
  | PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1 PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'OneOf1
  deriving (Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> String
-> String
[PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants]
-> String -> String
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> String
(Int
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
    -> String)
-> ([PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants]
    -> String -> String)
-> Show
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> String
$cshow :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> Bool
(PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
 -> Bool)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
    -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
    -> Bool)
-> Eq
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> Bool
$c/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> Bool
== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> Bool
$c== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Bancontact'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_settings.properties.payment_method_options.properties.card.anyOf@ in the specification.
data PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1 = PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
  { -- | request_three_d_secure
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure :: (GHC.Maybe.Maybe PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure')
  }
  deriving
    ( Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> String
-> String
[PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1]
-> String -> String
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> String
(Int
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
    -> String)
-> ([PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1]
    -> String -> String)
-> Show
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> String
$cshow :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> String
-> String
GHC.Show.Show,
      PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> Bool
(PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
 -> Bool)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
    -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
    -> Bool)
-> Eq
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> Bool
$c/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> Bool
== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> Bool
$c== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1 where
  toJSON :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> Value
toJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"request_three_d_secure" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> Encoding
toEncoding PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"request_three_d_secure" Text
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
-> Maybe
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
obj)

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

-- | Create a new 'PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1' with all required fields.
mkPostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1 :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
mkPostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1 :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
mkPostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1 = PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1 :: Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1 {postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure :: Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
postInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure = Maybe
  PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the enum schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_settings.properties.payment_method_options.properties.card.anyOf.properties.request_three_d_secure@ in the specification.
data PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'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.
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"any"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAny
  | -- | Represents the JSON value @"automatic"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAutomatic
  deriving (Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
-> String
[PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure']
-> String -> String
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
(Int
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
    -> String)
-> ([PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure']
    -> String -> String)
-> Show
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure']
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure']
-> String -> String
show :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
$cshow :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Bool
(PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
 -> Bool)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
    -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
    -> Bool)
-> Eq
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Bool
$c/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Bool
== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Bool
$c== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure' where
  toJSON :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Value
toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'Other Value
val) = Value
val
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAny) = Value
"any"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAutomatic) = Value
"automatic"

instance Data.Aeson.Types.FromJSON.FromJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure' where
  parseJSON :: Value
-> Parser
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
parseJSON Value
val =
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Parser
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
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
"any" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAny
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"automatic" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAutomatic
            | Bool
GHC.Base.otherwise -> Value
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1RequestThreeDSecure'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_settings.properties.payment_method_options.properties.card.anyOf@ in the specification.
data PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
  = -- | Represents the JSON value @""@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'EmptyString
  | PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1 PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'OneOf1
  deriving (Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> String
-> String
[PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants]
-> String -> String
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> String
(Int
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
    -> String)
-> ([PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants]
    -> String -> String)
-> Show
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> String
$cshow :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> Bool
(PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
 -> Bool)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
    -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
    -> Bool)
-> Eq
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> Bool
$c/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> Bool
== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> Bool
$c== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodOptions'Card'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @paths.\/v1\/invoices\/{invoice}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_settings.properties.payment_method_types.anyOf.items@ in the specification.
data PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'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.
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"ach_credit_transfer"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumAchCreditTransfer
  | -- | Represents the JSON value @"ach_debit"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumAchDebit
  | -- | Represents the JSON value @"au_becs_debit"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumAuBecsDebit
  | -- | Represents the JSON value @"bacs_debit"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumBacsDebit
  | -- | Represents the JSON value @"bancontact"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumBancontact
  | -- | Represents the JSON value @"card"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumCard
  | -- | Represents the JSON value @"fpx"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumFpx
  | -- | Represents the JSON value @"giropay"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumGiropay
  | -- | Represents the JSON value @"ideal"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumIdeal
  | -- | Represents the JSON value @"sepa_debit"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumSepaDebit
  | -- | Represents the JSON value @"sofort"@
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumSofort
  deriving (Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> String
-> String
[PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1]
-> String -> String
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> String
(Int
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
 -> String
 -> String)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
    -> String)
-> ([PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1]
    -> String -> String)
-> Show
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1]
-> String -> String
$cshowList :: [PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1]
-> String -> String
show :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> String
$cshow :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> String
showsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> String
-> String
GHC.Show.Show, PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> Bool
(PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
 -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
 -> Bool)
-> (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
    -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
    -> Bool)
-> Eq
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> Bool
$c/= :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> Bool
== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> Bool
$c== :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1 where
  toJSON :: PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> Value
toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1Other Value
val) = Value
val
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumAchCreditTransfer) = Value
"ach_credit_transfer"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumAchDebit) = Value
"ach_debit"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumAuBecsDebit) = Value
"au_becs_debit"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumBacsDebit) = Value
"bacs_debit"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumBancontact) = Value
"bancontact"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumCard) = Value
"card"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumFpx) = Value
"fpx"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumGiropay) = Value
"giropay"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumIdeal) = Value
"ideal"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumSepaDebit) = Value
"sepa_debit"
  toJSON (PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumSofort) = Value
"sofort"

instance Data.Aeson.Types.FromJSON.FromJSON PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1 where
  parseJSON :: Value
-> Parser
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
parseJSON Value
val =
    PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
-> Parser
     PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'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
"ach_credit_transfer" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumAchCreditTransfer
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ach_debit" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumAchDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"au_becs_debit" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumAuBecsDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bacs_debit" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumBacsDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bancontact" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumBancontact
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"card" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumCard
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"fpx" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumFpx
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"giropay" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumGiropay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ideal" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumIdeal
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sepa_debit" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumSepaDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sofort" -> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1EnumSofort
            | Bool
GHC.Base.otherwise -> Value
-> PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1
PostInvoicesInvoiceRequestBodyPaymentSettings'PaymentMethodTypes'OneOf1Other Value
val
      )

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

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

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

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

instance Data.Aeson.Types.ToJSON.ToJSON PostInvoicesInvoiceRequestBodyTransferData'OneOf1 where
  toJSON :: PostInvoicesInvoiceRequestBodyTransferData'OneOf1 -> Value
toJSON PostInvoicesInvoiceRequestBodyTransferData'OneOf1
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..= PostInvoicesInvoiceRequestBodyTransferData'OneOf1 -> Maybe Int
postInvoicesInvoiceRequestBodyTransferData'OneOf1Amount PostInvoicesInvoiceRequestBodyTransferData'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"destination" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyTransferData'OneOf1 -> Text
postInvoicesInvoiceRequestBodyTransferData'OneOf1Destination PostInvoicesInvoiceRequestBodyTransferData'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostInvoicesInvoiceRequestBodyTransferData'OneOf1 -> Encoding
toEncoding PostInvoicesInvoiceRequestBodyTransferData'OneOf1
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..= PostInvoicesInvoiceRequestBodyTransferData'OneOf1 -> Maybe Int
postInvoicesInvoiceRequestBodyTransferData'OneOf1Amount PostInvoicesInvoiceRequestBodyTransferData'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"destination" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostInvoicesInvoiceRequestBodyTransferData'OneOf1 -> Text
postInvoicesInvoiceRequestBodyTransferData'OneOf1Destination PostInvoicesInvoiceRequestBodyTransferData'OneOf1
obj))

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

-- | Create a new 'PostInvoicesInvoiceRequestBodyTransferData'OneOf1' with all required fields.
mkPostInvoicesInvoiceRequestBodyTransferData'OneOf1 ::
  -- | 'postInvoicesInvoiceRequestBodyTransferData'OneOf1Destination'
  Data.Text.Internal.Text ->
  PostInvoicesInvoiceRequestBodyTransferData'OneOf1
mkPostInvoicesInvoiceRequestBodyTransferData'OneOf1 :: Text -> PostInvoicesInvoiceRequestBodyTransferData'OneOf1
mkPostInvoicesInvoiceRequestBodyTransferData'OneOf1 Text
postInvoicesInvoiceRequestBodyTransferData'OneOf1Destination =
  PostInvoicesInvoiceRequestBodyTransferData'OneOf1 :: Maybe Int
-> Text -> PostInvoicesInvoiceRequestBodyTransferData'OneOf1
PostInvoicesInvoiceRequestBodyTransferData'OneOf1
    { postInvoicesInvoiceRequestBodyTransferData'OneOf1Amount :: Maybe Int
postInvoicesInvoiceRequestBodyTransferData'OneOf1Amount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postInvoicesInvoiceRequestBodyTransferData'OneOf1Destination :: Text
postInvoicesInvoiceRequestBodyTransferData'OneOf1Destination = Text
postInvoicesInvoiceRequestBodyTransferData'OneOf1Destination
    }

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

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

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

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