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

-- | Contains the types generated from the schema LineItem
module RecurlyClient.Types.LineItem where

import qualified Control.Monad.Fail
import qualified Data.Aeson
import qualified Data.Aeson as Data.Aeson.Encoding.Internal
import qualified Data.Aeson as Data.Aeson.Types
import qualified Data.Aeson as Data.Aeson.Types.FromJSON
import qualified Data.Aeson as Data.Aeson.Types.Internal
import qualified Data.Aeson as Data.Aeson.Types.ToJSON
import qualified Data.ByteString
import qualified Data.ByteString as Data.ByteString.Internal
import qualified Data.Foldable
import qualified Data.Functor
import qualified Data.Maybe
import qualified Data.Scientific
import qualified Data.Text
import qualified Data.Text as Data.Text.Internal
import qualified Data.Time.Calendar as Data.Time.Calendar.Days
import qualified Data.Time.LocalTime as Data.Time.LocalTime.Internal.ZonedTime
import qualified GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified RecurlyClient.Common
import RecurlyClient.TypeAlias
import {-# SOURCE #-} RecurlyClient.Types.AccountMini
import {-# SOURCE #-} RecurlyClient.Types.ShippingAddress
import {-# SOURCE #-} RecurlyClient.Types.TaxInfo
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | Defines the object schema located at @components.schemas.LineItem@ in the specification.
data LineItem = LineItem
    { LineItem -> Maybe AccountMini
lineItemAccount :: (GHC.Maybe.Maybe AccountMini)
    -- ^ account
    , LineItem -> Maybe Text
lineItemAccounting_code :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ accounting_code: Internal accounting code to help you reconcile your revenue to the correct ledger. Line items created as part of a subscription invoice will use the plan or add-on\'s accounting code, otherwise the value will only be present if you define an accounting code when creating the line item.
    --
    -- Constraints:
    --
    -- * Maximum length of 20
    , LineItem -> Maybe Text
lineItemAdd_on_code :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ add_on_code: If the line item is a charge or credit for an add-on, this is its code.
    --
    -- Constraints:
    --
    -- * Maximum length of 50
    , LineItem -> Maybe Text
lineItemAdd_on_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ add_on_id: If the line item is a charge or credit for an add-on this is its ID.
    --
    -- Constraints:
    --
    -- * Maximum length of 13
    , LineItem -> Maybe Float
lineItemAmount :: (GHC.Maybe.Maybe GHC.Types.Float)
    -- ^ amount: \`(quantity * unit_amount) - (discount + tax)\`
    , LineItem -> Maybe Int
lineItemAvalara_service_type :: (GHC.Maybe.Maybe GHC.Types.Int)
    -- ^ avalara_service_type: Used by Avalara for Communications taxes. The transaction type in combination with the service type describe how the line item is taxed. Refer to [the documentation](https:\/\/help.avalara.com\/AvaTax_for_Communications\/Tax_Calculation\/AvaTax_for_Communications_Tax_Engine\/Mapping_Resources\/TM_00115_AFC_Modules_Corresponding_Transaction_Types) for more available t\/s types.
    --
    -- Constraints:
    --
    -- * Minimum  of 0.0
    , LineItem -> Maybe Int
lineItemAvalara_transaction_type :: (GHC.Maybe.Maybe GHC.Types.Int)
    -- ^ avalara_transaction_type: Used by Avalara for Communications taxes. The transaction type in combination with the service type describe how the line item is taxed. Refer to [the documentation](https:\/\/help.avalara.com\/AvaTax_for_Communications\/Tax_Calculation\/AvaTax_for_Communications_Tax_Engine\/Mapping_Resources\/TM_00115_AFC_Modules_Corresponding_Transaction_Types) for more available t\/s types.
    --
    -- Constraints:
    --
    -- * Minimum  of 0.0
    , LineItem -> Maybe Text
lineItemBill_for_account_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ bill_for_account_id: The UUID of the account responsible for originating the line item.
    --
    -- Constraints:
    --
    -- * Maximum length of 13
    , LineItem -> Maybe JsonDateTime
lineItemCreated_at :: (GHC.Maybe.Maybe RecurlyClient.Common.JsonDateTime)
    -- ^ created_at: When the line item was created.
    , LineItem -> Maybe Float
lineItemCredit_applied :: (GHC.Maybe.Maybe GHC.Types.Float)
    -- ^ credit_applied: The amount of credit from this line item that was applied to the invoice.
    , LineItem -> Maybe LineItemCredit_reason_code
lineItemCredit_reason_code :: (GHC.Maybe.Maybe LineItemCredit_reason_code)
    -- ^ credit_reason_code: The reason the credit was given when line item is \`type=credit\`.
    , LineItem -> Maybe Text
lineItemCurrency :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ currency: 3-letter ISO 4217 currency code.
    --
    -- Constraints:
    --
    -- * Maximum length of 3
    , LineItem -> Maybe CustomFields
lineItemCustom_fields :: (GHC.Maybe.Maybe CustomFields)
    -- ^ custom_fields: The custom fields will only be altered when they are included in a request. Sending an empty array will not remove any existing values. To remove a field send the name with a null or empty value.
    , LineItem -> Maybe Text
lineItemDescription :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ description: Description that appears on the invoice. For subscription related items this will be filled in automatically.
    --
    -- Constraints:
    --
    -- * Maximum length of 255
    , LineItem -> Maybe LineItemDestination_tax_address_source
lineItemDestination_tax_address_source :: (GHC.Maybe.Maybe LineItemDestination_tax_address_source)
    -- ^ destination_tax_address_source: The source of the address that will be used as the destinaion in determining taxes. Available only when the site is on an Elite plan. A value of \"destination\" refers to the \"Customer tax address\". A value of \"origin\" refers to the \"Business entity tax address\".
    , LineItem -> Maybe Float
lineItemDiscount :: (GHC.Maybe.Maybe GHC.Types.Float)
    -- ^ discount: The discount applied to the line item.
    , LineItem -> Maybe JsonDateTime
lineItemEnd_date :: (GHC.Maybe.Maybe RecurlyClient.Common.JsonDateTime)
    -- ^ end_date: If this date is provided, it indicates the end of a time range.
    , LineItem -> Maybe Text
lineItemExternal_sku :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ external_sku: Optional Stock Keeping Unit assigned to an item. Available when the Credit Invoices feature is enabled.
    --
    -- Constraints:
    --
    -- * Maximum length of 50
    , LineItem -> Maybe Text
lineItemId :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ id
    --
    -- Constraints:
    --
    -- * Maximum length of 13
    , LineItem -> Maybe Text
lineItemInvoice_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ invoice_id: Once the line item has been invoiced this will be the invoice\'s ID.
    --
    -- Constraints:
    --
    -- * Maximum length of 13
    , LineItem -> Maybe Text
lineItemInvoice_number :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ invoice_number: Once the line item has been invoiced this will be the invoice\'s number. If VAT taxation and the Country Invoice Sequencing feature are enabled, invoices will have country-specific invoice numbers for invoices billed to EU countries (ex: FR1001). Non-EU invoices will continue to use the site-level invoice number sequence.
    , LineItem -> Maybe Text
lineItemItem_code :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ item_code: Unique code to identify an item. Available when the Credit Invoices feature is enabled.
    --
    -- Constraints:
    --
    -- * Maximum length of 50
    -- * Must match pattern \'\/^[a-z0-9_+-]+\$\/\'
    , LineItem -> Maybe Text
lineItemItem_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ item_id: System-generated unique identifier for an item. Available when the Credit Invoices feature is enabled.
    --
    -- Constraints:
    --
    -- * Maximum length of 13
    , LineItem -> Maybe LineItemLegacy_category
lineItemLegacy_category :: (GHC.Maybe.Maybe LineItemLegacy_category)
    -- ^ legacy_category: Category to describe the role of a line item on a legacy invoice:
    -- - \"charges\" refers to charges being billed for on this invoice.
    -- - \"credits\" refers to refund or proration credits. This portion of the invoice can be considered a credit memo.
    -- - \"applied_credits\" refers to previous credits applied to this invoice. See their original_line_item_id to determine where the credit first originated.
    -- - \"carryforwards\" can be ignored. They exist to consume any remaining credit balance. A new credit with the same amount will be created and placed back on the account.
    , LineItem -> Maybe Text
lineItemLiability_gl_account_code :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ liability_gl_account_code: Unique code to identify the ledger account. Each code must start
    -- with a letter or number. The following special characters are
    -- allowed: \`-_.,:\`
    --
    --
    -- Constraints:
    --
    -- * Maximum length of 255
    -- * Must match pattern \'\/^[A-Za-z0-9](( *)?[\\-A-Za-z0-9_.,:])*\$\/\'
    , LineItem -> Maybe Text
lineItemObject :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ object
    , LineItem -> Maybe LineItemOrigin
lineItemOrigin :: (GHC.Maybe.Maybe LineItemOrigin)
    -- ^ origin: A credit created from an original charge will have the value of the charge\'s origin.
    , LineItem -> Maybe LineItemOrigin_tax_address_source
lineItemOrigin_tax_address_source :: (GHC.Maybe.Maybe LineItemOrigin_tax_address_source)
    -- ^ origin_tax_address_source: The source of the address that will be used as the origin in determining taxes. Available only when the site is on an Elite plan. A value of \"origin\" refers to the \"Business entity tax address\". A value of \"destination\" refers to the \"Customer tax address\".
    , LineItem -> Maybe Text
lineItemOriginal_line_item_invoice_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ original_line_item_invoice_id: The invoice where the credit originated. Will only have a value if the line item is a credit created from a previous credit, or if the credit was created from a charge refund.
    --
    -- Constraints:
    --
    -- * Maximum length of 13
    , LineItem -> Maybe Text
lineItemPerformance_obligation_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ performance_obligation_id: The ID of a performance obligation. Performance obligations are
    -- only accessible as a part of the Recurly RevRec Standard and
    -- Recurly RevRec Advanced features.
    --
    --
    -- Constraints:
    --
    -- * Maximum length of 13
    , LineItem -> Maybe Text
lineItemPlan_code :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ plan_code: If the line item is a charge or credit for a plan or add-on, this is the plan\'s code.
    --
    -- Constraints:
    --
    -- * Maximum length of 50
    , LineItem -> Maybe Text
lineItemPlan_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ plan_id: If the line item is a charge or credit for a plan or add-on, this is the plan\'s ID.
    --
    -- Constraints:
    --
    -- * Maximum length of 13
    , LineItem -> Maybe Text
lineItemPrevious_line_item_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ previous_line_item_id: Will only have a value if the line item is a credit created from a previous credit, or if the credit was created from a charge refund.
    --
    -- Constraints:
    --
    -- * Maximum length of 13
    , LineItem -> Maybe Text
lineItemProduct_code :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ product_code: For plan-related line items this will be the plan\'s code, for add-on related line items it will be the add-on\'s code. For item-related line items it will be the item\'s \`external_sku\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 50
    , LineItem -> Maybe Float
lineItemProration_rate :: (GHC.Maybe.Maybe GHC.Types.Float)
    -- ^ proration_rate: When a line item has been prorated, this is the rate of the proration. Proration rates were made available for line items created after March 30, 2017. For line items created prior to that date, the proration rate will be \`null\`, even if the line item was prorated.
    --
    -- Constraints:
    --
    -- * Maxium  of 1.0
    -- * Minimum  of 0.0
    , LineItem -> Maybe Int
lineItemQuantity :: (GHC.Maybe.Maybe GHC.Types.Int)
    -- ^ quantity: This number will be multiplied by the unit amount to compute the subtotal before any discounts or taxes.
    , LineItem -> Maybe Text
lineItemQuantity_decimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ quantity_decimal: A floating-point alternative to Quantity. If this value is present, it will be used in place of Quantity for calculations, and Quantity will be the rounded integer value of this number. This field supports up to 9 decimal places. The Decimal Quantity feature must be enabled to utilize this field.
    , LineItem -> Maybe Bool
lineItemRefund :: (GHC.Maybe.Maybe GHC.Types.Bool)
    -- ^ refund
    , LineItem -> Maybe Int
lineItemRefunded_quantity :: (GHC.Maybe.Maybe GHC.Types.Int)
    -- ^ refunded_quantity: For refund charges, the quantity being refunded. For non-refund charges, the total quantity refunded (possibly over multiple refunds).
    , LineItem -> Maybe Text
lineItemRefunded_quantity_decimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ refunded_quantity_decimal: A floating-point alternative to Refunded Quantity. For refund charges, the quantity being refunded. For non-refund charges, the total quantity refunded (possibly over multiple refunds). The Decimal Quantity feature must be enabled to utilize this field.
    , LineItem -> Maybe Text
lineItemRevenue_gl_account_code :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ revenue_gl_account_code: Unique code to identify the ledger account. Each code must start
    -- with a letter or number. The following special characters are
    -- allowed: \`-_.,:\`
    --
    --
    -- Constraints:
    --
    -- * Maximum length of 255
    -- * Must match pattern \'\/^[A-Za-z0-9](( *)?[\\-A-Za-z0-9_.,:])*\$\/\'
    , LineItem -> Maybe LineItemRevenue_schedule_type
lineItemRevenue_schedule_type :: (GHC.Maybe.Maybe LineItemRevenue_schedule_type)
    -- ^ revenue_schedule_type
    , LineItem -> Maybe ShippingAddress
lineItemShipping_address :: (GHC.Maybe.Maybe ShippingAddress)
    -- ^ shipping_address
    , LineItem -> Maybe JsonDateTime
lineItemStart_date :: (GHC.Maybe.Maybe RecurlyClient.Common.JsonDateTime)
    -- ^ start_date: If an end date is present, this is value indicates the beginning of a billing time range. If no end date is present it indicates billing for a specific date.
    , LineItem -> Maybe LineItemState
lineItemState :: (GHC.Maybe.Maybe LineItemState)
    -- ^ state: Pending line items are charges or credits on an account that have not been applied to an invoice yet. Invoiced line items will always have an \`invoice_id\` value.
    , LineItem -> Maybe Text
lineItemSubscription_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ subscription_id: If the line item is a charge or credit for a subscription, this is its ID.
    --
    -- Constraints:
    --
    -- * Maximum length of 13
    , LineItem -> Maybe Float
lineItemSubtotal :: (GHC.Maybe.Maybe GHC.Types.Float)
    -- ^ subtotal: \`quantity * unit_amount\`
    , LineItem -> Maybe Float
lineItemTax :: (GHC.Maybe.Maybe GHC.Types.Float)
    -- ^ tax: The tax amount for the line item.
    , LineItem -> Maybe Text
lineItemTax_code :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ tax_code: Optional field used by Avalara, Vertex, and Recurly\'s In-the-Box tax solution to determine taxation rules. You can pass in specific tax codes using any of these tax integrations. For Recurly\'s In-the-Box tax offering you can also choose to instead use simple values of \`unknown\`, \`physical\`, or \`digital\` tax codes.
    --
    -- Constraints:
    --
    -- * Maximum length of 50
    , LineItem -> Maybe Bool
lineItemTax_exempt :: (GHC.Maybe.Maybe GHC.Types.Bool)
    -- ^ tax_exempt: \`true\` exempts tax on charges, \`false\` applies tax on charges. If not defined, then defaults to the Plan and Site settings. This attribute does not work for credits (negative line items). Credits are always applied post-tax. Pre-tax discounts should use the Coupons feature.
    , LineItem -> Maybe Bool
lineItemTax_inclusive :: (GHC.Maybe.Maybe GHC.Types.Bool)
    -- ^ tax_inclusive: Determines whether or not tax is included in the unit amount. The Tax Inclusive Pricing feature (separate from the Mixed Tax Pricing feature) must be enabled to utilize this flag.
    , LineItem -> Maybe TaxInfo
lineItemTax_info :: (GHC.Maybe.Maybe TaxInfo)
    -- ^ tax_info: Only for merchants using Recurly\'s In-The-Box taxes.
    , LineItem -> Maybe Bool
lineItemTaxable :: (GHC.Maybe.Maybe GHC.Types.Bool)
    -- ^ taxable: \`true\` if the line item is taxable, \`false\` if it is not.
    , LineItem -> Maybe LineItemType
lineItemType :: (GHC.Maybe.Maybe LineItemType)
    -- ^ type: Charges are positive line items that debit the account. Credits are negative line items that credit the account.
    , LineItem -> Maybe Float
lineItemUnit_amount :: (GHC.Maybe.Maybe GHC.Types.Float)
    -- ^ unit_amount: Positive amount for a charge, negative amount for a credit.
    , LineItem -> Maybe Text
lineItemUnit_amount_decimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ unit_amount_decimal: Positive amount for a charge, negative amount for a credit.
    , LineItem -> Maybe JsonDateTime
lineItemUpdated_at :: (GHC.Maybe.Maybe RecurlyClient.Common.JsonDateTime)
    -- ^ updated_at: When the line item was last changed.
    , LineItem -> Maybe Text
lineItemUuid :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ uuid: The UUID is useful for matching data with the CSV exports and building URLs into Recurly\'s UI.
    --
    -- Constraints:
    --
    -- * Maximum length of 32
    }
    deriving
        ( Int -> LineItem -> ShowS
[LineItem] -> ShowS
LineItem -> String
(Int -> LineItem -> ShowS)
-> (LineItem -> String) -> ([LineItem] -> ShowS) -> Show LineItem
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LineItem -> ShowS
showsPrec :: Int -> LineItem -> ShowS
$cshow :: LineItem -> String
show :: LineItem -> String
$cshowList :: [LineItem] -> ShowS
showList :: [LineItem] -> ShowS
GHC.Show.Show
        , LineItem -> LineItem -> Bool
(LineItem -> LineItem -> Bool)
-> (LineItem -> LineItem -> Bool) -> Eq LineItem
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LineItem -> LineItem -> Bool
== :: LineItem -> LineItem -> Bool
$c/= :: LineItem -> LineItem -> Bool
/= :: LineItem -> LineItem -> Bool
GHC.Classes.Eq
        )

instance Data.Aeson.Types.ToJSON.ToJSON LineItem where
    toJSON :: LineItem -> Value
toJSON LineItem
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object ([[Pair]] -> [Pair]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
Data.Foldable.concat ([Pair] -> (AccountMini -> [Pair]) -> Maybe AccountMini -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (AccountMini -> Pair) -> AccountMini -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"account" Key -> AccountMini -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe AccountMini
lineItemAccount LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"accounting_code" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemAccounting_code LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"add_on_code" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemAdd_on_code LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"add_on_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemAdd_on_id LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Float -> [Pair]) -> Maybe Float -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Float -> Pair) -> Float -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"amount" Key -> Float -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemAmount LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Int -> [Pair]) -> Maybe Int -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Int -> Pair) -> Int -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"avalara_service_type" Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Int
lineItemAvalara_service_type LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Int -> [Pair]) -> Maybe Int -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Int -> Pair) -> Int -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"avalara_transaction_type" Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Int
lineItemAvalara_transaction_type LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"bill_for_account_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemBill_for_account_id LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (JsonDateTime -> [Pair]) -> Maybe JsonDateTime -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (JsonDateTime -> Pair) -> JsonDateTime -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"created_at" Key -> JsonDateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe JsonDateTime
lineItemCreated_at LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Float -> [Pair]) -> Maybe Float -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Float -> Pair) -> Float -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"credit_applied" Key -> Float -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemCredit_applied LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (LineItemCredit_reason_code -> [Pair])
-> Maybe LineItemCredit_reason_code
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (LineItemCredit_reason_code -> Pair)
-> LineItemCredit_reason_code
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"credit_reason_code" Key -> LineItemCredit_reason_code -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemCredit_reason_code
lineItemCredit_reason_code LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"currency" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemCurrency LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (CustomFields -> [Pair]) -> Maybe CustomFields -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (CustomFields -> Pair) -> CustomFields -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"custom_fields" Key -> CustomFields -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe CustomFields
lineItemCustom_fields LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"description" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemDescription LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (LineItemDestination_tax_address_source -> [Pair])
-> Maybe LineItemDestination_tax_address_source
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (LineItemDestination_tax_address_source -> Pair)
-> LineItemDestination_tax_address_source
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"destination_tax_address_source" Key -> LineItemDestination_tax_address_source -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemDestination_tax_address_source
lineItemDestination_tax_address_source LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Float -> [Pair]) -> Maybe Float -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Float -> Pair) -> Float -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"discount" Key -> Float -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemDiscount LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (JsonDateTime -> [Pair]) -> Maybe JsonDateTime -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (JsonDateTime -> Pair) -> JsonDateTime -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"end_date" Key -> JsonDateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe JsonDateTime
lineItemEnd_date LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"external_sku" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemExternal_sku LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemId LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"invoice_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemInvoice_id LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"invoice_number" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemInvoice_number LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"item_code" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemItem_code LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"item_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemItem_id LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (LineItemLegacy_category -> [Pair])
-> Maybe LineItemLegacy_category
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (LineItemLegacy_category -> Pair)
-> LineItemLegacy_category
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"legacy_category" Key -> LineItemLegacy_category -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemLegacy_category
lineItemLegacy_category LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"liability_gl_account_code" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemLiability_gl_account_code LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"object" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemObject LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (LineItemOrigin -> [Pair]) -> Maybe LineItemOrigin -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (LineItemOrigin -> Pair) -> LineItemOrigin -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"origin" Key -> LineItemOrigin -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemOrigin
lineItemOrigin LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (LineItemOrigin_tax_address_source -> [Pair])
-> Maybe LineItemOrigin_tax_address_source
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (LineItemOrigin_tax_address_source -> Pair)
-> LineItemOrigin_tax_address_source
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"origin_tax_address_source" Key -> LineItemOrigin_tax_address_source -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemOrigin_tax_address_source
lineItemOrigin_tax_address_source LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"original_line_item_invoice_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemOriginal_line_item_invoice_id LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"performance_obligation_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemPerformance_obligation_id LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"plan_code" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemPlan_code LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"plan_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemPlan_id LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"previous_line_item_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemPrevious_line_item_id LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"product_code" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemProduct_code LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Float -> [Pair]) -> Maybe Float -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Float -> Pair) -> Float -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"proration_rate" Key -> Float -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemProration_rate LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Int -> [Pair]) -> Maybe Int -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Int -> Pair) -> Int -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"quantity" Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Int
lineItemQuantity LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"quantity_decimal" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemQuantity_decimal LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Bool -> [Pair]) -> Maybe Bool -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Bool -> Pair) -> Bool -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"refund" Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Bool
lineItemRefund LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Int -> [Pair]) -> Maybe Int -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Int -> Pair) -> Int -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"refunded_quantity" Key -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Int
lineItemRefunded_quantity LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"refunded_quantity_decimal" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemRefunded_quantity_decimal LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"revenue_gl_account_code" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemRevenue_gl_account_code LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (LineItemRevenue_schedule_type -> [Pair])
-> Maybe LineItemRevenue_schedule_type
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (LineItemRevenue_schedule_type -> Pair)
-> LineItemRevenue_schedule_type
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"revenue_schedule_type" Key -> LineItemRevenue_schedule_type -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemRevenue_schedule_type
lineItemRevenue_schedule_type LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (ShippingAddress -> [Pair]) -> Maybe ShippingAddress -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (ShippingAddress -> Pair) -> ShippingAddress -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"shipping_address" Key -> ShippingAddress -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe ShippingAddress
lineItemShipping_address LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (JsonDateTime -> [Pair]) -> Maybe JsonDateTime -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (JsonDateTime -> Pair) -> JsonDateTime -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"start_date" Key -> JsonDateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe JsonDateTime
lineItemStart_date LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (LineItemState -> [Pair]) -> Maybe LineItemState -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (LineItemState -> Pair) -> LineItemState -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"state" Key -> LineItemState -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemState
lineItemState LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"subscription_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemSubscription_id LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Float -> [Pair]) -> Maybe Float -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Float -> Pair) -> Float -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"subtotal" Key -> Float -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemSubtotal LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Float -> [Pair]) -> Maybe Float -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Float -> Pair) -> Float -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax" Key -> Float -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemTax LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_code" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemTax_code LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Bool -> [Pair]) -> Maybe Bool -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Bool -> Pair) -> Bool -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_exempt" Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Bool
lineItemTax_exempt LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Bool -> [Pair]) -> Maybe Bool -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Bool -> Pair) -> Bool -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_inclusive" Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Bool
lineItemTax_inclusive LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (TaxInfo -> [Pair]) -> Maybe TaxInfo -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (TaxInfo -> Pair) -> TaxInfo -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_info" Key -> TaxInfo -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe TaxInfo
lineItemTax_info LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Bool -> [Pair]) -> Maybe Bool -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Bool -> Pair) -> Bool -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"taxable" Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Bool
lineItemTaxable LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (LineItemType -> [Pair]) -> Maybe LineItemType -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (LineItemType -> Pair) -> LineItemType -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"type" Key -> LineItemType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemType
lineItemType LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Float -> [Pair]) -> Maybe Float -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Float -> Pair) -> Float -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"unit_amount" Key -> Float -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemUnit_amount LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"unit_amount_decimal" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemUnit_amount_decimal LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (JsonDateTime -> [Pair]) -> Maybe JsonDateTime -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (JsonDateTime -> Pair) -> JsonDateTime -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"updated_at" Key -> JsonDateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe JsonDateTime
lineItemUpdated_at LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"uuid" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemUuid LineItem
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [[Pair]]
forall a. Monoid a => a
GHC.Base.mempty))
    toEncoding :: LineItem -> Encoding
toEncoding LineItem
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ([Series] -> Series
forall a. Monoid a => [a] -> a
GHC.Base.mconcat ([[Series]] -> [Series]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
Data.Foldable.concat ([Series]
-> (AccountMini -> [Series]) -> Maybe AccountMini -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (AccountMini -> Series) -> AccountMini -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"account" Key -> AccountMini -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe AccountMini
lineItemAccount LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"accounting_code" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemAccounting_code LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"add_on_code" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemAdd_on_code LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"add_on_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemAdd_on_id LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Float -> [Series]) -> Maybe Float -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Float -> Series) -> Float -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"amount" Key -> Float -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemAmount LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Int -> [Series]) -> Maybe Int -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Int -> Series) -> Int -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"avalara_service_type" Key -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Int
lineItemAvalara_service_type LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Int -> [Series]) -> Maybe Int -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Int -> Series) -> Int -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"avalara_transaction_type" Key -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Int
lineItemAvalara_transaction_type LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"bill_for_account_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemBill_for_account_id LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (JsonDateTime -> [Series]) -> Maybe JsonDateTime -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (JsonDateTime -> Series) -> JsonDateTime -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"created_at" Key -> JsonDateTime -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe JsonDateTime
lineItemCreated_at LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Float -> [Series]) -> Maybe Float -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Float -> Series) -> Float -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"credit_applied" Key -> Float -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemCredit_applied LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (LineItemCredit_reason_code -> [Series])
-> Maybe LineItemCredit_reason_code
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (LineItemCredit_reason_code -> Series)
-> LineItemCredit_reason_code
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"credit_reason_code" Key -> LineItemCredit_reason_code -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemCredit_reason_code
lineItemCredit_reason_code LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"currency" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemCurrency LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (CustomFields -> [Series]) -> Maybe CustomFields -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (CustomFields -> Series) -> CustomFields -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"custom_fields" Key -> CustomFields -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe CustomFields
lineItemCustom_fields LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"description" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemDescription LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (LineItemDestination_tax_address_source -> [Series])
-> Maybe LineItemDestination_tax_address_source
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (LineItemDestination_tax_address_source -> Series)
-> LineItemDestination_tax_address_source
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"destination_tax_address_source" Key -> LineItemDestination_tax_address_source -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemDestination_tax_address_source
lineItemDestination_tax_address_source LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Float -> [Series]) -> Maybe Float -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Float -> Series) -> Float -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"discount" Key -> Float -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemDiscount LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (JsonDateTime -> [Series]) -> Maybe JsonDateTime -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (JsonDateTime -> Series) -> JsonDateTime -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"end_date" Key -> JsonDateTime -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe JsonDateTime
lineItemEnd_date LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"external_sku" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemExternal_sku LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemId LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"invoice_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemInvoice_id LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"invoice_number" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemInvoice_number LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"item_code" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemItem_code LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"item_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemItem_id LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (LineItemLegacy_category -> [Series])
-> Maybe LineItemLegacy_category
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (LineItemLegacy_category -> Series)
-> LineItemLegacy_category
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"legacy_category" Key -> LineItemLegacy_category -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemLegacy_category
lineItemLegacy_category LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"liability_gl_account_code" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemLiability_gl_account_code LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"object" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemObject LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (LineItemOrigin -> [Series]) -> Maybe LineItemOrigin -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (LineItemOrigin -> Series) -> LineItemOrigin -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"origin" Key -> LineItemOrigin -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemOrigin
lineItemOrigin LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (LineItemOrigin_tax_address_source -> [Series])
-> Maybe LineItemOrigin_tax_address_source
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (LineItemOrigin_tax_address_source -> Series)
-> LineItemOrigin_tax_address_source
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"origin_tax_address_source" Key -> LineItemOrigin_tax_address_source -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemOrigin_tax_address_source
lineItemOrigin_tax_address_source LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"original_line_item_invoice_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemOriginal_line_item_invoice_id LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"performance_obligation_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemPerformance_obligation_id LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"plan_code" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemPlan_code LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"plan_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemPlan_id LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"previous_line_item_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemPrevious_line_item_id LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"product_code" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemProduct_code LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Float -> [Series]) -> Maybe Float -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Float -> Series) -> Float -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"proration_rate" Key -> Float -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemProration_rate LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Int -> [Series]) -> Maybe Int -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Int -> Series) -> Int -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"quantity" Key -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Int
lineItemQuantity LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"quantity_decimal" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemQuantity_decimal LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Bool -> [Series]) -> Maybe Bool -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Bool -> Series) -> Bool -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"refund" Key -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Bool
lineItemRefund LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Int -> [Series]) -> Maybe Int -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Int -> Series) -> Int -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"refunded_quantity" Key -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Int
lineItemRefunded_quantity LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"refunded_quantity_decimal" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemRefunded_quantity_decimal LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"revenue_gl_account_code" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemRevenue_gl_account_code LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (LineItemRevenue_schedule_type -> [Series])
-> Maybe LineItemRevenue_schedule_type
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (LineItemRevenue_schedule_type -> Series)
-> LineItemRevenue_schedule_type
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"revenue_schedule_type" Key -> LineItemRevenue_schedule_type -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemRevenue_schedule_type
lineItemRevenue_schedule_type LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (ShippingAddress -> [Series])
-> Maybe ShippingAddress
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (ShippingAddress -> Series) -> ShippingAddress -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"shipping_address" Key -> ShippingAddress -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe ShippingAddress
lineItemShipping_address LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (JsonDateTime -> [Series]) -> Maybe JsonDateTime -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (JsonDateTime -> Series) -> JsonDateTime -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"start_date" Key -> JsonDateTime -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe JsonDateTime
lineItemStart_date LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (LineItemState -> [Series]) -> Maybe LineItemState -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (LineItemState -> Series) -> LineItemState -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"state" Key -> LineItemState -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemState
lineItemState LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"subscription_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemSubscription_id LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Float -> [Series]) -> Maybe Float -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Float -> Series) -> Float -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"subtotal" Key -> Float -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemSubtotal LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Float -> [Series]) -> Maybe Float -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Float -> Series) -> Float -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax" Key -> Float -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemTax LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_code" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemTax_code LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Bool -> [Series]) -> Maybe Bool -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Bool -> Series) -> Bool -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_exempt" Key -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Bool
lineItemTax_exempt LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Bool -> [Series]) -> Maybe Bool -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Bool -> Series) -> Bool -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_inclusive" Key -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Bool
lineItemTax_inclusive LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (TaxInfo -> [Series]) -> Maybe TaxInfo -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (TaxInfo -> Series) -> TaxInfo -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_info" Key -> TaxInfo -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe TaxInfo
lineItemTax_info LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Bool -> [Series]) -> Maybe Bool -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Bool -> Series) -> Bool -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"taxable" Key -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Bool
lineItemTaxable LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (LineItemType -> [Series]) -> Maybe LineItemType -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (LineItemType -> Series) -> LineItemType -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"type" Key -> LineItemType -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe LineItemType
lineItemType LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Float -> [Series]) -> Maybe Float -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Float -> Series) -> Float -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"unit_amount" Key -> Float -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Float
lineItemUnit_amount LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"unit_amount_decimal" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemUnit_amount_decimal LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (JsonDateTime -> [Series]) -> Maybe JsonDateTime -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (JsonDateTime -> Series) -> JsonDateTime -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"updated_at" Key -> JsonDateTime -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe JsonDateTime
lineItemUpdated_at LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"uuid" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (LineItem -> Maybe Text
lineItemUuid LineItem
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [[Series]]
forall a. Monoid a => a
GHC.Base.mempty)))
instance Data.Aeson.Types.FromJSON.FromJSON LineItem where
    parseJSON :: Value -> Parser LineItem
parseJSON = String -> (Object -> Parser LineItem) -> Value -> Parser LineItem
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"LineItem" (\Object
obj -> ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((Maybe AccountMini
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Float
 -> Maybe Int
 -> Maybe Int
 -> Maybe Text
 -> Maybe JsonDateTime
 -> Maybe Float
 -> Maybe LineItemCredit_reason_code
 -> Maybe Text
 -> Maybe CustomFields
 -> Maybe Text
 -> Maybe LineItemDestination_tax_address_source
 -> Maybe Float
 -> Maybe JsonDateTime
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe LineItemLegacy_category
 -> Maybe Text
 -> Maybe Text
 -> Maybe LineItemOrigin
 -> Maybe LineItemOrigin_tax_address_source
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Float
 -> Maybe Int
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe LineItemRevenue_schedule_type
 -> Maybe ShippingAddress
 -> Maybe JsonDateTime
 -> Maybe LineItemState
 -> Maybe Text
 -> Maybe Float
 -> Maybe Float
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe TaxInfo
 -> Maybe Bool
 -> Maybe LineItemType
 -> Maybe Float
 -> Maybe Text
 -> Maybe JsonDateTime
 -> Maybe Text
 -> LineItem)
-> Parser
     (Maybe AccountMini
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Float
      -> Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe AccountMini
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Float
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe Float
-> Maybe LineItemCredit_reason_code
-> Maybe Text
-> Maybe CustomFields
-> Maybe Text
-> Maybe LineItemDestination_tax_address_source
-> Maybe Float
-> Maybe JsonDateTime
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe LineItemLegacy_category
-> Maybe Text
-> Maybe Text
-> Maybe LineItemOrigin
-> Maybe LineItemOrigin_tax_address_source
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Float
-> Maybe Int
-> Maybe Text
-> Maybe Bool
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe LineItemRevenue_schedule_type
-> Maybe ShippingAddress
-> Maybe JsonDateTime
-> Maybe LineItemState
-> Maybe Text
-> Maybe Float
-> Maybe Float
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe TaxInfo
-> Maybe Bool
-> Maybe LineItemType
-> Maybe Float
-> Maybe Text
-> Maybe JsonDateTime
-> Maybe Text
-> LineItem
LineItem Parser
  (Maybe AccountMini
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Float
   -> Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe AccountMini)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Float
      -> Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe AccountMini)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"account")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Float
   -> Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Float
      -> Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"accounting_code")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Float
   -> Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Float
      -> Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"add_on_code")) Parser
  (Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Float
   -> Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Float
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Float
      -> Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"add_on_id")) Parser
  (Maybe Float
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Float
   -> Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Float)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Float
      -> Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Float)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"amount")) Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Float
   -> Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Float
      -> Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"avalara_service_type")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Float
   -> Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Float
      -> Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"avalara_transaction_type")) Parser
  (Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Float
   -> Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe JsonDateTime
      -> Maybe Float
      -> Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"bill_for_account_id")) Parser
  (Maybe JsonDateTime
   -> Maybe Float
   -> Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe JsonDateTime)
-> Parser
     (Maybe Float
      -> Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe JsonDateTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"created_at")) Parser
  (Maybe Float
   -> Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Float)
-> Parser
     (Maybe LineItemCredit_reason_code
      -> Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Float)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"credit_applied")) Parser
  (Maybe LineItemCredit_reason_code
   -> Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe LineItemCredit_reason_code)
-> Parser
     (Maybe Text
      -> Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe LineItemCredit_reason_code)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"credit_reason_code")) Parser
  (Maybe Text
   -> Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe CustomFields
      -> Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"currency")) Parser
  (Maybe CustomFields
   -> Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe CustomFields)
-> Parser
     (Maybe Text
      -> Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe CustomFields)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"custom_fields")) Parser
  (Maybe Text
   -> Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe LineItemDestination_tax_address_source
      -> Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"description")) Parser
  (Maybe LineItemDestination_tax_address_source
   -> Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe LineItemDestination_tax_address_source)
-> Parser
     (Maybe Float
      -> Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Key -> Parser (Maybe LineItemDestination_tax_address_source)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"destination_tax_address_source")) Parser
  (Maybe Float
   -> Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Float)
-> Parser
     (Maybe JsonDateTime
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Float)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"discount")) Parser
  (Maybe JsonDateTime
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe JsonDateTime)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe JsonDateTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"end_date")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"external_sku")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"id")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"invoice_id")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"invoice_number")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"item_code")) Parser
  (Maybe Text
   -> Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe LineItemLegacy_category
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"item_id")) Parser
  (Maybe LineItemLegacy_category
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe LineItemLegacy_category)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe LineItemLegacy_category)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"legacy_category")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"liability_gl_account_code")) Parser
  (Maybe Text
   -> Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe LineItemOrigin
      -> Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"object")) Parser
  (Maybe LineItemOrigin
   -> Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe LineItemOrigin)
-> Parser
     (Maybe LineItemOrigin_tax_address_source
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe LineItemOrigin)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"origin")) Parser
  (Maybe LineItemOrigin_tax_address_source
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe LineItemOrigin_tax_address_source)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe LineItemOrigin_tax_address_source)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"origin_tax_address_source")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"original_line_item_invoice_id")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"performance_obligation_id")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"plan_code")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"plan_id")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"previous_line_item_id")) Parser
  (Maybe Text
   -> Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Float
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"product_code")) Parser
  (Maybe Float
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Float)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Float)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"proration_rate")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"quantity")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"quantity_decimal")) Parser
  (Maybe Bool
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"refund")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"refunded_quantity")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"refunded_quantity_decimal")) Parser
  (Maybe Text
   -> Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe LineItemRevenue_schedule_type
      -> Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"revenue_gl_account_code")) Parser
  (Maybe LineItemRevenue_schedule_type
   -> Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe LineItemRevenue_schedule_type)
-> Parser
     (Maybe ShippingAddress
      -> Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe LineItemRevenue_schedule_type)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"revenue_schedule_type")) Parser
  (Maybe ShippingAddress
   -> Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe ShippingAddress)
-> Parser
     (Maybe JsonDateTime
      -> Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe ShippingAddress)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"shipping_address")) Parser
  (Maybe JsonDateTime
   -> Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe JsonDateTime)
-> Parser
     (Maybe LineItemState
      -> Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe JsonDateTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"start_date")) Parser
  (Maybe LineItemState
   -> Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe LineItemState)
-> Parser
     (Maybe Text
      -> Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe LineItemState)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"state")) Parser
  (Maybe Text
   -> Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Float
      -> Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"subscription_id")) Parser
  (Maybe Float
   -> Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Float)
-> Parser
     (Maybe Float
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Float)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"subtotal")) Parser
  (Maybe Float
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Float)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Float)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"tax")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"tax_code")) Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"tax_exempt")) Parser
  (Maybe Bool
   -> Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Bool)
-> Parser
     (Maybe TaxInfo
      -> Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"tax_inclusive")) Parser
  (Maybe TaxInfo
   -> Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe TaxInfo)
-> Parser
     (Maybe Bool
      -> Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe TaxInfo)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"tax_info")) Parser
  (Maybe Bool
   -> Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe Bool)
-> Parser
     (Maybe LineItemType
      -> Maybe Float
      -> Maybe Text
      -> Maybe JsonDateTime
      -> Maybe Text
      -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"taxable")) Parser
  (Maybe LineItemType
   -> Maybe Float
   -> Maybe Text
   -> Maybe JsonDateTime
   -> Maybe Text
   -> LineItem)
-> Parser (Maybe LineItemType)
-> Parser
     (Maybe Float
      -> Maybe Text -> Maybe JsonDateTime -> Maybe Text -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe LineItemType)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"type")) Parser
  (Maybe Float
   -> Maybe Text -> Maybe JsonDateTime -> Maybe Text -> LineItem)
-> Parser (Maybe Float)
-> Parser
     (Maybe Text -> Maybe JsonDateTime -> Maybe Text -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Float)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"unit_amount")) Parser (Maybe Text -> Maybe JsonDateTime -> Maybe Text -> LineItem)
-> Parser (Maybe Text)
-> Parser (Maybe JsonDateTime -> Maybe Text -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"unit_amount_decimal")) Parser (Maybe JsonDateTime -> Maybe Text -> LineItem)
-> Parser (Maybe JsonDateTime) -> Parser (Maybe Text -> LineItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe JsonDateTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"updated_at")) Parser (Maybe Text -> LineItem)
-> Parser (Maybe Text) -> Parser LineItem
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"uuid"))

-- | Create a new 'LineItem' with all required fields.
mkLineItem :: LineItem
mkLineItem :: LineItem
mkLineItem =
    LineItem
        { lineItemAccount :: Maybe AccountMini
lineItemAccount = Maybe AccountMini
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemAccounting_code :: Maybe Text
lineItemAccounting_code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemAdd_on_code :: Maybe Text
lineItemAdd_on_code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemAdd_on_id :: Maybe Text
lineItemAdd_on_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemAmount :: Maybe Float
lineItemAmount = Maybe Float
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemAvalara_service_type :: Maybe Int
lineItemAvalara_service_type = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemAvalara_transaction_type :: Maybe Int
lineItemAvalara_transaction_type = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemBill_for_account_id :: Maybe Text
lineItemBill_for_account_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemCreated_at :: Maybe JsonDateTime
lineItemCreated_at = Maybe JsonDateTime
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemCredit_applied :: Maybe Float
lineItemCredit_applied = Maybe Float
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemCredit_reason_code :: Maybe LineItemCredit_reason_code
lineItemCredit_reason_code = Maybe LineItemCredit_reason_code
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemCurrency :: Maybe Text
lineItemCurrency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemCustom_fields :: Maybe CustomFields
lineItemCustom_fields = Maybe CustomFields
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemDescription :: Maybe Text
lineItemDescription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemDestination_tax_address_source :: Maybe LineItemDestination_tax_address_source
lineItemDestination_tax_address_source = Maybe LineItemDestination_tax_address_source
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemDiscount :: Maybe Float
lineItemDiscount = Maybe Float
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemEnd_date :: Maybe JsonDateTime
lineItemEnd_date = Maybe JsonDateTime
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemExternal_sku :: Maybe Text
lineItemExternal_sku = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemId :: Maybe Text
lineItemId = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemInvoice_id :: Maybe Text
lineItemInvoice_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemInvoice_number :: Maybe Text
lineItemInvoice_number = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemItem_code :: Maybe Text
lineItemItem_code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemItem_id :: Maybe Text
lineItemItem_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemLegacy_category :: Maybe LineItemLegacy_category
lineItemLegacy_category = Maybe LineItemLegacy_category
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemLiability_gl_account_code :: Maybe Text
lineItemLiability_gl_account_code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemObject :: Maybe Text
lineItemObject = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemOrigin :: Maybe LineItemOrigin
lineItemOrigin = Maybe LineItemOrigin
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemOrigin_tax_address_source :: Maybe LineItemOrigin_tax_address_source
lineItemOrigin_tax_address_source = Maybe LineItemOrigin_tax_address_source
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemOriginal_line_item_invoice_id :: Maybe Text
lineItemOriginal_line_item_invoice_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemPerformance_obligation_id :: Maybe Text
lineItemPerformance_obligation_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemPlan_code :: Maybe Text
lineItemPlan_code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemPlan_id :: Maybe Text
lineItemPlan_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemPrevious_line_item_id :: Maybe Text
lineItemPrevious_line_item_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemProduct_code :: Maybe Text
lineItemProduct_code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemProration_rate :: Maybe Float
lineItemProration_rate = Maybe Float
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemQuantity :: Maybe Int
lineItemQuantity = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemQuantity_decimal :: Maybe Text
lineItemQuantity_decimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemRefund :: Maybe Bool
lineItemRefund = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemRefunded_quantity :: Maybe Int
lineItemRefunded_quantity = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemRefunded_quantity_decimal :: Maybe Text
lineItemRefunded_quantity_decimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemRevenue_gl_account_code :: Maybe Text
lineItemRevenue_gl_account_code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemRevenue_schedule_type :: Maybe LineItemRevenue_schedule_type
lineItemRevenue_schedule_type = Maybe LineItemRevenue_schedule_type
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemShipping_address :: Maybe ShippingAddress
lineItemShipping_address = Maybe ShippingAddress
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemStart_date :: Maybe JsonDateTime
lineItemStart_date = Maybe JsonDateTime
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemState :: Maybe LineItemState
lineItemState = Maybe LineItemState
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemSubscription_id :: Maybe Text
lineItemSubscription_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemSubtotal :: Maybe Float
lineItemSubtotal = Maybe Float
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemTax :: Maybe Float
lineItemTax = Maybe Float
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemTax_code :: Maybe Text
lineItemTax_code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemTax_exempt :: Maybe Bool
lineItemTax_exempt = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemTax_inclusive :: Maybe Bool
lineItemTax_inclusive = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemTax_info :: Maybe TaxInfo
lineItemTax_info = Maybe TaxInfo
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemTaxable :: Maybe Bool
lineItemTaxable = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemType :: Maybe LineItemType
lineItemType = Maybe LineItemType
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemUnit_amount :: Maybe Float
lineItemUnit_amount = Maybe Float
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemUnit_amount_decimal :: Maybe Text
lineItemUnit_amount_decimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemUpdated_at :: Maybe JsonDateTime
lineItemUpdated_at = Maybe JsonDateTime
forall a. Maybe a
GHC.Maybe.Nothing
        , lineItemUuid :: Maybe Text
lineItemUuid = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        }

{- | Defines the enum schema located at @components.schemas.LineItem.properties.credit_reason_code@ in the specification.

The reason the credit was given when line item is \`type=credit\`.
-}
data LineItemCredit_reason_code
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      LineItemCredit_reason_codeOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      LineItemCredit_reason_codeTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"general"@
      LineItemCredit_reason_codeEnumGeneral
    | -- | Represents the JSON value @"gift_card"@
      LineItemCredit_reason_codeEnumGift_card
    | -- | Represents the JSON value @"promotional"@
      LineItemCredit_reason_codeEnumPromotional
    | -- | Represents the JSON value @"refund"@
      LineItemCredit_reason_codeEnumRefund
    | -- | Represents the JSON value @"service"@
      LineItemCredit_reason_codeEnumService
    | -- | Represents the JSON value @"write_off"@
      LineItemCredit_reason_codeEnumWrite_off
    deriving (Int -> LineItemCredit_reason_code -> ShowS
[LineItemCredit_reason_code] -> ShowS
LineItemCredit_reason_code -> String
(Int -> LineItemCredit_reason_code -> ShowS)
-> (LineItemCredit_reason_code -> String)
-> ([LineItemCredit_reason_code] -> ShowS)
-> Show LineItemCredit_reason_code
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LineItemCredit_reason_code -> ShowS
showsPrec :: Int -> LineItemCredit_reason_code -> ShowS
$cshow :: LineItemCredit_reason_code -> String
show :: LineItemCredit_reason_code -> String
$cshowList :: [LineItemCredit_reason_code] -> ShowS
showList :: [LineItemCredit_reason_code] -> ShowS
GHC.Show.Show, LineItemCredit_reason_code -> LineItemCredit_reason_code -> Bool
(LineItemCredit_reason_code -> LineItemCredit_reason_code -> Bool)
-> (LineItemCredit_reason_code
    -> LineItemCredit_reason_code -> Bool)
-> Eq LineItemCredit_reason_code
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LineItemCredit_reason_code -> LineItemCredit_reason_code -> Bool
== :: LineItemCredit_reason_code -> LineItemCredit_reason_code -> Bool
$c/= :: LineItemCredit_reason_code -> LineItemCredit_reason_code -> Bool
/= :: LineItemCredit_reason_code -> LineItemCredit_reason_code -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON LineItemCredit_reason_code where
    toJSON :: LineItemCredit_reason_code -> Value
toJSON (LineItemCredit_reason_codeOther Value
val) = Value
val
    toJSON (LineItemCredit_reason_codeTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (LineItemCredit_reason_code
LineItemCredit_reason_codeEnumGeneral) = Value
"general"
    toJSON (LineItemCredit_reason_code
LineItemCredit_reason_codeEnumGift_card) = Value
"gift_card"
    toJSON (LineItemCredit_reason_code
LineItemCredit_reason_codeEnumPromotional) = Value
"promotional"
    toJSON (LineItemCredit_reason_code
LineItemCredit_reason_codeEnumRefund) = Value
"refund"
    toJSON (LineItemCredit_reason_code
LineItemCredit_reason_codeEnumService) = Value
"service"
    toJSON (LineItemCredit_reason_code
LineItemCredit_reason_codeEnumWrite_off) = Value
"write_off"
instance Data.Aeson.Types.FromJSON.FromJSON LineItemCredit_reason_code where
    parseJSON :: Value -> Parser LineItemCredit_reason_code
parseJSON Value
val =
        LineItemCredit_reason_code -> Parser LineItemCredit_reason_code
forall a. a -> Parser a
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
"general" -> LineItemCredit_reason_code
LineItemCredit_reason_codeEnumGeneral
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"gift_card" -> LineItemCredit_reason_code
LineItemCredit_reason_codeEnumGift_card
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"promotional" -> LineItemCredit_reason_code
LineItemCredit_reason_codeEnumPromotional
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"refund" -> LineItemCredit_reason_code
LineItemCredit_reason_codeEnumRefund
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"service" -> LineItemCredit_reason_code
LineItemCredit_reason_codeEnumService
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"write_off" -> LineItemCredit_reason_code
LineItemCredit_reason_codeEnumWrite_off
                | Bool
GHC.Base.otherwise -> Value -> LineItemCredit_reason_code
LineItemCredit_reason_codeOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.LineItem.properties.destination_tax_address_source@ in the specification.

The source of the address that will be used as the destinaion in determining taxes. Available only when the site is on an Elite plan. A value of \"destination\" refers to the \"Customer tax address\". A value of \"origin\" refers to the \"Business entity tax address\".
-}
data LineItemDestination_tax_address_source
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      LineItemDestination_tax_address_sourceOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      LineItemDestination_tax_address_sourceTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"destination"@
      LineItemDestination_tax_address_sourceEnumDestination
    | -- | Represents the JSON value @"origin"@
      LineItemDestination_tax_address_sourceEnumOrigin
    deriving (Int -> LineItemDestination_tax_address_source -> ShowS
[LineItemDestination_tax_address_source] -> ShowS
LineItemDestination_tax_address_source -> String
(Int -> LineItemDestination_tax_address_source -> ShowS)
-> (LineItemDestination_tax_address_source -> String)
-> ([LineItemDestination_tax_address_source] -> ShowS)
-> Show LineItemDestination_tax_address_source
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LineItemDestination_tax_address_source -> ShowS
showsPrec :: Int -> LineItemDestination_tax_address_source -> ShowS
$cshow :: LineItemDestination_tax_address_source -> String
show :: LineItemDestination_tax_address_source -> String
$cshowList :: [LineItemDestination_tax_address_source] -> ShowS
showList :: [LineItemDestination_tax_address_source] -> ShowS
GHC.Show.Show, LineItemDestination_tax_address_source
-> LineItemDestination_tax_address_source -> Bool
(LineItemDestination_tax_address_source
 -> LineItemDestination_tax_address_source -> Bool)
-> (LineItemDestination_tax_address_source
    -> LineItemDestination_tax_address_source -> Bool)
-> Eq LineItemDestination_tax_address_source
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LineItemDestination_tax_address_source
-> LineItemDestination_tax_address_source -> Bool
== :: LineItemDestination_tax_address_source
-> LineItemDestination_tax_address_source -> Bool
$c/= :: LineItemDestination_tax_address_source
-> LineItemDestination_tax_address_source -> Bool
/= :: LineItemDestination_tax_address_source
-> LineItemDestination_tax_address_source -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON LineItemDestination_tax_address_source where
    toJSON :: LineItemDestination_tax_address_source -> Value
toJSON (LineItemDestination_tax_address_sourceOther Value
val) = Value
val
    toJSON (LineItemDestination_tax_address_sourceTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (LineItemDestination_tax_address_source
LineItemDestination_tax_address_sourceEnumDestination) = Value
"destination"
    toJSON (LineItemDestination_tax_address_source
LineItemDestination_tax_address_sourceEnumOrigin) = Value
"origin"
instance Data.Aeson.Types.FromJSON.FromJSON LineItemDestination_tax_address_source where
    parseJSON :: Value -> Parser LineItemDestination_tax_address_source
parseJSON Value
val =
        LineItemDestination_tax_address_source
-> Parser LineItemDestination_tax_address_source
forall a. a -> Parser a
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
"destination" -> LineItemDestination_tax_address_source
LineItemDestination_tax_address_sourceEnumDestination
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"origin" -> LineItemDestination_tax_address_source
LineItemDestination_tax_address_sourceEnumOrigin
                | Bool
GHC.Base.otherwise -> Value -> LineItemDestination_tax_address_source
LineItemDestination_tax_address_sourceOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.LineItem.properties.legacy_category@ in the specification.

Category to describe the role of a line item on a legacy invoice:
- \"charges\" refers to charges being billed for on this invoice.
- \"credits\" refers to refund or proration credits. This portion of the invoice can be considered a credit memo.
- \"applied_credits\" refers to previous credits applied to this invoice. See their original_line_item_id to determine where the credit first originated.
- \"carryforwards\" can be ignored. They exist to consume any remaining credit balance. A new credit with the same amount will be created and placed back on the account.
-}
data LineItemLegacy_category
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      LineItemLegacy_categoryOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      LineItemLegacy_categoryTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"applied_credit"@
      LineItemLegacy_categoryEnumApplied_credit
    | -- | Represents the JSON value @"carryforward"@
      LineItemLegacy_categoryEnumCarryforward
    | -- | Represents the JSON value @"charge"@
      LineItemLegacy_categoryEnumCharge
    | -- | Represents the JSON value @"credit"@
      LineItemLegacy_categoryEnumCredit
    deriving (Int -> LineItemLegacy_category -> ShowS
[LineItemLegacy_category] -> ShowS
LineItemLegacy_category -> String
(Int -> LineItemLegacy_category -> ShowS)
-> (LineItemLegacy_category -> String)
-> ([LineItemLegacy_category] -> ShowS)
-> Show LineItemLegacy_category
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LineItemLegacy_category -> ShowS
showsPrec :: Int -> LineItemLegacy_category -> ShowS
$cshow :: LineItemLegacy_category -> String
show :: LineItemLegacy_category -> String
$cshowList :: [LineItemLegacy_category] -> ShowS
showList :: [LineItemLegacy_category] -> ShowS
GHC.Show.Show, LineItemLegacy_category -> LineItemLegacy_category -> Bool
(LineItemLegacy_category -> LineItemLegacy_category -> Bool)
-> (LineItemLegacy_category -> LineItemLegacy_category -> Bool)
-> Eq LineItemLegacy_category
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LineItemLegacy_category -> LineItemLegacy_category -> Bool
== :: LineItemLegacy_category -> LineItemLegacy_category -> Bool
$c/= :: LineItemLegacy_category -> LineItemLegacy_category -> Bool
/= :: LineItemLegacy_category -> LineItemLegacy_category -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON LineItemLegacy_category where
    toJSON :: LineItemLegacy_category -> Value
toJSON (LineItemLegacy_categoryOther Value
val) = Value
val
    toJSON (LineItemLegacy_categoryTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (LineItemLegacy_category
LineItemLegacy_categoryEnumApplied_credit) = Value
"applied_credit"
    toJSON (LineItemLegacy_category
LineItemLegacy_categoryEnumCarryforward) = Value
"carryforward"
    toJSON (LineItemLegacy_category
LineItemLegacy_categoryEnumCharge) = Value
"charge"
    toJSON (LineItemLegacy_category
LineItemLegacy_categoryEnumCredit) = Value
"credit"
instance Data.Aeson.Types.FromJSON.FromJSON LineItemLegacy_category where
    parseJSON :: Value -> Parser LineItemLegacy_category
parseJSON Value
val =
        LineItemLegacy_category -> Parser LineItemLegacy_category
forall a. a -> Parser a
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
"applied_credit" -> LineItemLegacy_category
LineItemLegacy_categoryEnumApplied_credit
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"carryforward" -> LineItemLegacy_category
LineItemLegacy_categoryEnumCarryforward
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"charge" -> LineItemLegacy_category
LineItemLegacy_categoryEnumCharge
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"credit" -> LineItemLegacy_category
LineItemLegacy_categoryEnumCredit
                | Bool
GHC.Base.otherwise -> Value -> LineItemLegacy_category
LineItemLegacy_categoryOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.LineItem.properties.origin@ in the specification.

A credit created from an original charge will have the value of the charge\'s origin.
-}
data LineItemOrigin
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      LineItemOriginOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      LineItemOriginTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"add_on"@
      LineItemOriginEnumAdd_on
    | -- | Represents the JSON value @"add_on_trial"@
      LineItemOriginEnumAdd_on_trial
    | -- | Represents the JSON value @"carryforward"@
      LineItemOriginEnumCarryforward
    | -- | Represents the JSON value @"coupon"@
      LineItemOriginEnumCoupon
    | -- | Represents the JSON value @"credit"@
      LineItemOriginEnumCredit
    | -- | Represents the JSON value @"debit"@
      LineItemOriginEnumDebit
    | -- | Represents the JSON value @"one_time"@
      LineItemOriginEnumOne_time
    | -- | Represents the JSON value @"plan"@
      LineItemOriginEnumPlan
    | -- | Represents the JSON value @"plan_trial"@
      LineItemOriginEnumPlan_trial
    | -- | Represents the JSON value @"setup_fee"@
      LineItemOriginEnumSetup_fee
    | -- | Represents the JSON value @"prepayment"@
      LineItemOriginEnumPrepayment
    deriving (Int -> LineItemOrigin -> ShowS
[LineItemOrigin] -> ShowS
LineItemOrigin -> String
(Int -> LineItemOrigin -> ShowS)
-> (LineItemOrigin -> String)
-> ([LineItemOrigin] -> ShowS)
-> Show LineItemOrigin
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LineItemOrigin -> ShowS
showsPrec :: Int -> LineItemOrigin -> ShowS
$cshow :: LineItemOrigin -> String
show :: LineItemOrigin -> String
$cshowList :: [LineItemOrigin] -> ShowS
showList :: [LineItemOrigin] -> ShowS
GHC.Show.Show, LineItemOrigin -> LineItemOrigin -> Bool
(LineItemOrigin -> LineItemOrigin -> Bool)
-> (LineItemOrigin -> LineItemOrigin -> Bool) -> Eq LineItemOrigin
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LineItemOrigin -> LineItemOrigin -> Bool
== :: LineItemOrigin -> LineItemOrigin -> Bool
$c/= :: LineItemOrigin -> LineItemOrigin -> Bool
/= :: LineItemOrigin -> LineItemOrigin -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON LineItemOrigin where
    toJSON :: LineItemOrigin -> Value
toJSON (LineItemOriginOther Value
val) = Value
val
    toJSON (LineItemOriginTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (LineItemOrigin
LineItemOriginEnumAdd_on) = Value
"add_on"
    toJSON (LineItemOrigin
LineItemOriginEnumAdd_on_trial) = Value
"add_on_trial"
    toJSON (LineItemOrigin
LineItemOriginEnumCarryforward) = Value
"carryforward"
    toJSON (LineItemOrigin
LineItemOriginEnumCoupon) = Value
"coupon"
    toJSON (LineItemOrigin
LineItemOriginEnumCredit) = Value
"credit"
    toJSON (LineItemOrigin
LineItemOriginEnumDebit) = Value
"debit"
    toJSON (LineItemOrigin
LineItemOriginEnumOne_time) = Value
"one_time"
    toJSON (LineItemOrigin
LineItemOriginEnumPlan) = Value
"plan"
    toJSON (LineItemOrigin
LineItemOriginEnumPlan_trial) = Value
"plan_trial"
    toJSON (LineItemOrigin
LineItemOriginEnumSetup_fee) = Value
"setup_fee"
    toJSON (LineItemOrigin
LineItemOriginEnumPrepayment) = Value
"prepayment"
instance Data.Aeson.Types.FromJSON.FromJSON LineItemOrigin where
    parseJSON :: Value -> Parser LineItemOrigin
parseJSON Value
val =
        LineItemOrigin -> Parser LineItemOrigin
forall a. a -> Parser a
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
"add_on" -> LineItemOrigin
LineItemOriginEnumAdd_on
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"add_on_trial" -> LineItemOrigin
LineItemOriginEnumAdd_on_trial
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"carryforward" -> LineItemOrigin
LineItemOriginEnumCarryforward
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"coupon" -> LineItemOrigin
LineItemOriginEnumCoupon
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"credit" -> LineItemOrigin
LineItemOriginEnumCredit
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"debit" -> LineItemOrigin
LineItemOriginEnumDebit
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"one_time" -> LineItemOrigin
LineItemOriginEnumOne_time
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"plan" -> LineItemOrigin
LineItemOriginEnumPlan
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"plan_trial" -> LineItemOrigin
LineItemOriginEnumPlan_trial
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"setup_fee" -> LineItemOrigin
LineItemOriginEnumSetup_fee
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"prepayment" -> LineItemOrigin
LineItemOriginEnumPrepayment
                | Bool
GHC.Base.otherwise -> Value -> LineItemOrigin
LineItemOriginOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.LineItem.properties.origin_tax_address_source@ in the specification.

The source of the address that will be used as the origin in determining taxes. Available only when the site is on an Elite plan. A value of \"origin\" refers to the \"Business entity tax address\". A value of \"destination\" refers to the \"Customer tax address\".
-}
data LineItemOrigin_tax_address_source
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      LineItemOrigin_tax_address_sourceOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      LineItemOrigin_tax_address_sourceTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"origin"@
      LineItemOrigin_tax_address_sourceEnumOrigin
    | -- | Represents the JSON value @"destination"@
      LineItemOrigin_tax_address_sourceEnumDestination
    deriving (Int -> LineItemOrigin_tax_address_source -> ShowS
[LineItemOrigin_tax_address_source] -> ShowS
LineItemOrigin_tax_address_source -> String
(Int -> LineItemOrigin_tax_address_source -> ShowS)
-> (LineItemOrigin_tax_address_source -> String)
-> ([LineItemOrigin_tax_address_source] -> ShowS)
-> Show LineItemOrigin_tax_address_source
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LineItemOrigin_tax_address_source -> ShowS
showsPrec :: Int -> LineItemOrigin_tax_address_source -> ShowS
$cshow :: LineItemOrigin_tax_address_source -> String
show :: LineItemOrigin_tax_address_source -> String
$cshowList :: [LineItemOrigin_tax_address_source] -> ShowS
showList :: [LineItemOrigin_tax_address_source] -> ShowS
GHC.Show.Show, LineItemOrigin_tax_address_source
-> LineItemOrigin_tax_address_source -> Bool
(LineItemOrigin_tax_address_source
 -> LineItemOrigin_tax_address_source -> Bool)
-> (LineItemOrigin_tax_address_source
    -> LineItemOrigin_tax_address_source -> Bool)
-> Eq LineItemOrigin_tax_address_source
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LineItemOrigin_tax_address_source
-> LineItemOrigin_tax_address_source -> Bool
== :: LineItemOrigin_tax_address_source
-> LineItemOrigin_tax_address_source -> Bool
$c/= :: LineItemOrigin_tax_address_source
-> LineItemOrigin_tax_address_source -> Bool
/= :: LineItemOrigin_tax_address_source
-> LineItemOrigin_tax_address_source -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON LineItemOrigin_tax_address_source where
    toJSON :: LineItemOrigin_tax_address_source -> Value
toJSON (LineItemOrigin_tax_address_sourceOther Value
val) = Value
val
    toJSON (LineItemOrigin_tax_address_sourceTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (LineItemOrigin_tax_address_source
LineItemOrigin_tax_address_sourceEnumOrigin) = Value
"origin"
    toJSON (LineItemOrigin_tax_address_source
LineItemOrigin_tax_address_sourceEnumDestination) = Value
"destination"
instance Data.Aeson.Types.FromJSON.FromJSON LineItemOrigin_tax_address_source where
    parseJSON :: Value -> Parser LineItemOrigin_tax_address_source
parseJSON Value
val =
        LineItemOrigin_tax_address_source
-> Parser LineItemOrigin_tax_address_source
forall a. a -> Parser a
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
"origin" -> LineItemOrigin_tax_address_source
LineItemOrigin_tax_address_sourceEnumOrigin
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"destination" -> LineItemOrigin_tax_address_source
LineItemOrigin_tax_address_sourceEnumDestination
                | Bool
GHC.Base.otherwise -> Value -> LineItemOrigin_tax_address_source
LineItemOrigin_tax_address_sourceOther Value
val
            )

-- | Defines the enum schema located at @components.schemas.LineItem.properties.revenue_schedule_type@ in the specification.
data LineItemRevenue_schedule_type
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      LineItemRevenue_schedule_typeOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      LineItemRevenue_schedule_typeTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"at_invoice"@
      LineItemRevenue_schedule_typeEnumAt_invoice
    | -- | Represents the JSON value @"at_range_end"@
      LineItemRevenue_schedule_typeEnumAt_range_end
    | -- | Represents the JSON value @"at_range_start"@
      LineItemRevenue_schedule_typeEnumAt_range_start
    | -- | Represents the JSON value @"evenly"@
      LineItemRevenue_schedule_typeEnumEvenly
    | -- | Represents the JSON value @"never"@
      LineItemRevenue_schedule_typeEnumNever
    deriving (Int -> LineItemRevenue_schedule_type -> ShowS
[LineItemRevenue_schedule_type] -> ShowS
LineItemRevenue_schedule_type -> String
(Int -> LineItemRevenue_schedule_type -> ShowS)
-> (LineItemRevenue_schedule_type -> String)
-> ([LineItemRevenue_schedule_type] -> ShowS)
-> Show LineItemRevenue_schedule_type
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LineItemRevenue_schedule_type -> ShowS
showsPrec :: Int -> LineItemRevenue_schedule_type -> ShowS
$cshow :: LineItemRevenue_schedule_type -> String
show :: LineItemRevenue_schedule_type -> String
$cshowList :: [LineItemRevenue_schedule_type] -> ShowS
showList :: [LineItemRevenue_schedule_type] -> ShowS
GHC.Show.Show, LineItemRevenue_schedule_type
-> LineItemRevenue_schedule_type -> Bool
(LineItemRevenue_schedule_type
 -> LineItemRevenue_schedule_type -> Bool)
-> (LineItemRevenue_schedule_type
    -> LineItemRevenue_schedule_type -> Bool)
-> Eq LineItemRevenue_schedule_type
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LineItemRevenue_schedule_type
-> LineItemRevenue_schedule_type -> Bool
== :: LineItemRevenue_schedule_type
-> LineItemRevenue_schedule_type -> Bool
$c/= :: LineItemRevenue_schedule_type
-> LineItemRevenue_schedule_type -> Bool
/= :: LineItemRevenue_schedule_type
-> LineItemRevenue_schedule_type -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON LineItemRevenue_schedule_type where
    toJSON :: LineItemRevenue_schedule_type -> Value
toJSON (LineItemRevenue_schedule_typeOther Value
val) = Value
val
    toJSON (LineItemRevenue_schedule_typeTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeEnumAt_invoice) = Value
"at_invoice"
    toJSON (LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeEnumAt_range_end) = Value
"at_range_end"
    toJSON (LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeEnumAt_range_start) = Value
"at_range_start"
    toJSON (LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeEnumEvenly) = Value
"evenly"
    toJSON (LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeEnumNever) = Value
"never"
instance Data.Aeson.Types.FromJSON.FromJSON LineItemRevenue_schedule_type where
    parseJSON :: Value -> Parser LineItemRevenue_schedule_type
parseJSON Value
val =
        LineItemRevenue_schedule_type
-> Parser LineItemRevenue_schedule_type
forall a. a -> Parser a
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
"at_invoice" -> LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeEnumAt_invoice
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"at_range_end" -> LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeEnumAt_range_end
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"at_range_start" -> LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeEnumAt_range_start
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"evenly" -> LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeEnumEvenly
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"never" -> LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeEnumNever
                | Bool
GHC.Base.otherwise -> Value -> LineItemRevenue_schedule_type
LineItemRevenue_schedule_typeOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.LineItem.properties.state@ in the specification.

Pending line items are charges or credits on an account that have not been applied to an invoice yet. Invoiced line items will always have an \`invoice_id\` value.
-}
data LineItemState
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      LineItemStateOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      LineItemStateTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"invoiced"@
      LineItemStateEnumInvoiced
    | -- | Represents the JSON value @"pending"@
      LineItemStateEnumPending
    deriving (Int -> LineItemState -> ShowS
[LineItemState] -> ShowS
LineItemState -> String
(Int -> LineItemState -> ShowS)
-> (LineItemState -> String)
-> ([LineItemState] -> ShowS)
-> Show LineItemState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LineItemState -> ShowS
showsPrec :: Int -> LineItemState -> ShowS
$cshow :: LineItemState -> String
show :: LineItemState -> String
$cshowList :: [LineItemState] -> ShowS
showList :: [LineItemState] -> ShowS
GHC.Show.Show, LineItemState -> LineItemState -> Bool
(LineItemState -> LineItemState -> Bool)
-> (LineItemState -> LineItemState -> Bool) -> Eq LineItemState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LineItemState -> LineItemState -> Bool
== :: LineItemState -> LineItemState -> Bool
$c/= :: LineItemState -> LineItemState -> Bool
/= :: LineItemState -> LineItemState -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON LineItemState where
    toJSON :: LineItemState -> Value
toJSON (LineItemStateOther Value
val) = Value
val
    toJSON (LineItemStateTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (LineItemState
LineItemStateEnumInvoiced) = Value
"invoiced"
    toJSON (LineItemState
LineItemStateEnumPending) = Value
"pending"
instance Data.Aeson.Types.FromJSON.FromJSON LineItemState where
    parseJSON :: Value -> Parser LineItemState
parseJSON Value
val =
        LineItemState -> Parser LineItemState
forall a. a -> Parser a
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
"invoiced" -> LineItemState
LineItemStateEnumInvoiced
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pending" -> LineItemState
LineItemStateEnumPending
                | Bool
GHC.Base.otherwise -> Value -> LineItemState
LineItemStateOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.LineItem.properties.type@ in the specification.

Charges are positive line items that debit the account. Credits are negative line items that credit the account.
-}
data LineItemType
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      LineItemTypeOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      LineItemTypeTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"charge"@
      LineItemTypeEnumCharge
    | -- | Represents the JSON value @"credit"@
      LineItemTypeEnumCredit
    deriving (Int -> LineItemType -> ShowS
[LineItemType] -> ShowS
LineItemType -> String
(Int -> LineItemType -> ShowS)
-> (LineItemType -> String)
-> ([LineItemType] -> ShowS)
-> Show LineItemType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LineItemType -> ShowS
showsPrec :: Int -> LineItemType -> ShowS
$cshow :: LineItemType -> String
show :: LineItemType -> String
$cshowList :: [LineItemType] -> ShowS
showList :: [LineItemType] -> ShowS
GHC.Show.Show, LineItemType -> LineItemType -> Bool
(LineItemType -> LineItemType -> Bool)
-> (LineItemType -> LineItemType -> Bool) -> Eq LineItemType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LineItemType -> LineItemType -> Bool
== :: LineItemType -> LineItemType -> Bool
$c/= :: LineItemType -> LineItemType -> Bool
/= :: LineItemType -> LineItemType -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON LineItemType where
    toJSON :: LineItemType -> Value
toJSON (LineItemTypeOther Value
val) = Value
val
    toJSON (LineItemTypeTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (LineItemType
LineItemTypeEnumCharge) = Value
"charge"
    toJSON (LineItemType
LineItemTypeEnumCredit) = Value
"credit"
instance Data.Aeson.Types.FromJSON.FromJSON LineItemType where
    parseJSON :: Value -> Parser LineItemType
parseJSON Value
val =
        LineItemType -> Parser LineItemType
forall a. a -> Parser a
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" -> LineItemType
LineItemTypeEnumCharge
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"credit" -> LineItemType
LineItemTypeEnumCredit
                | Bool
GHC.Base.otherwise -> Value -> LineItemType
LineItemTypeOther Value
val
            )