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

-- | Contains the different functions to run the operation getInvoices
module StripeAPI.Operations.GetInvoices where

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

-- | > GET /v1/invoices
--
-- \<p>You can list all invoices, or list the invoices for a specific customer. The invoices are returned sorted by creation date, with the most recently created invoices appearing first.\<\/p>
getInvoices ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | Contains all available parameters of this operation (query and path parameters)
  GetInvoicesParameters ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response GetInvoicesResponse)
getInvoices :: GetInvoicesParameters -> ClientT m (Response GetInvoicesResponse)
getInvoices GetInvoicesParameters
parameters =
  (Response ByteString -> Response GetInvoicesResponse)
-> ClientT m (Response ByteString)
-> ClientT m (Response GetInvoicesResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
    ( \Response ByteString
response_0 ->
        (ByteString -> GetInvoicesResponse)
-> Response ByteString -> Response GetInvoicesResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
          ( (String -> GetInvoicesResponse)
-> (GetInvoicesResponse -> GetInvoicesResponse)
-> Either String GetInvoicesResponse
-> GetInvoicesResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> GetInvoicesResponse
GetInvoicesResponseError GetInvoicesResponse -> GetInvoicesResponse
forall a. a -> a
GHC.Base.id
              (Either String GetInvoicesResponse -> GetInvoicesResponse)
-> (ByteString -> Either String GetInvoicesResponse)
-> ByteString
-> GetInvoicesResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. ( \Response ByteString
response ByteString
body ->
                             if
                                 | (\Status
status_1 -> Status -> Int
Network.HTTP.Types.Status.statusCode Status
status_1 Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Int
200) (Response ByteString -> Status
forall body. Response body -> Status
Network.HTTP.Client.Types.responseStatus Response ByteString
response) ->
                                   GetInvoicesResponseBody200 -> GetInvoicesResponse
GetInvoicesResponse200
                                     (GetInvoicesResponseBody200 -> GetInvoicesResponse)
-> Either String GetInvoicesResponseBody200
-> Either String GetInvoicesResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String GetInvoicesResponseBody200
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            GetInvoicesResponseBody200
                                                      )
                                 | Bool -> Status -> Bool
forall a b. a -> b -> a
GHC.Base.const Bool
GHC.Types.True (Response ByteString -> Status
forall body. Response body -> Status
Network.HTTP.Client.Types.responseStatus Response ByteString
response) ->
                                   Error -> GetInvoicesResponse
GetInvoicesResponseDefault
                                     (Error -> GetInvoicesResponse)
-> Either String Error -> Either String GetInvoicesResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String Error
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            Error
                                                      )
                                 | Bool
GHC.Base.otherwise -> String -> Either String GetInvoicesResponse
forall a b. a -> Either a b
Data.Either.Left String
"Missing default response type"
                         )
                Response ByteString
response_0
          )
          Response ByteString
response_0
    )
    ( Text -> Text -> [QueryParameter] -> ClientT m (Response ByteString)
forall (m :: * -> *).
MonadHTTP m =>
Text -> Text -> [QueryParameter] -> ClientT m (Response ByteString)
StripeAPI.Common.doCallWithConfigurationM
        (Text -> Text
Data.Text.toUpper (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
GHC.Base.$ String -> Text
Data.Text.pack String
"GET")
        (String -> Text
Data.Text.pack String
"/v1/invoices")
        [ Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"collection_method") (GetInvoicesParametersQueryCollectionMethod' -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesParametersQueryCollectionMethod' -> Value)
-> Maybe GetInvoicesParametersQueryCollectionMethod' -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryCollectionMethod'
getInvoicesParametersQueryCollectionMethod GetInvoicesParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"created") (GetInvoicesParametersQueryCreated'Variants -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesParametersQueryCreated'Variants -> Value)
-> Maybe GetInvoicesParametersQueryCreated'Variants -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryCreated'Variants
getInvoicesParametersQueryCreated GetInvoicesParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"customer") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryCustomer GetInvoicesParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"due_date") (GetInvoicesParametersQueryDueDate'Variants -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesParametersQueryDueDate'Variants -> Value)
-> Maybe GetInvoicesParametersQueryDueDate'Variants -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryDueDate'Variants
getInvoicesParametersQueryDueDate GetInvoicesParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"ending_before") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryEndingBefore GetInvoicesParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"expand") ([Text] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON ([Text] -> Value) -> Maybe [Text] -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesParameters -> Maybe [Text]
getInvoicesParametersQueryExpand GetInvoicesParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"limit") (Int -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Int -> Value) -> Maybe Int -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesParameters -> Maybe Int
getInvoicesParametersQueryLimit GetInvoicesParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"starting_after") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryStartingAfter GetInvoicesParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"status") (GetInvoicesParametersQueryStatus' -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (GetInvoicesParametersQueryStatus' -> Value)
-> Maybe GetInvoicesParametersQueryStatus' -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesParameters -> Maybe GetInvoicesParametersQueryStatus'
getInvoicesParametersQueryStatus GetInvoicesParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"subscription") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetInvoicesParameters -> Maybe Text
getInvoicesParametersQuerySubscription GetInvoicesParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True
        ]
    )

-- | Defines the object schema located at @paths.\/v1\/invoices.GET.parameters@ in the specification.
data GetInvoicesParameters = GetInvoicesParameters
  { -- | queryCollection_method: Represents the parameter named \'collection_method\'
    --
    -- The collection method of the invoice to retrieve. Either \`charge_automatically\` or \`send_invoice\`.
    GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryCollectionMethod'
getInvoicesParametersQueryCollectionMethod :: (GHC.Maybe.Maybe GetInvoicesParametersQueryCollectionMethod'),
    -- | queryCreated: Represents the parameter named \'created\'
    GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryCreated'Variants
getInvoicesParametersQueryCreated :: (GHC.Maybe.Maybe GetInvoicesParametersQueryCreated'Variants),
    -- | queryCustomer: Represents the parameter named \'customer\'
    --
    -- Only return invoices for the customer specified by this customer ID.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryCustomer :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | queryDue_date: Represents the parameter named \'due_date\'
    GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryDueDate'Variants
getInvoicesParametersQueryDueDate :: (GHC.Maybe.Maybe GetInvoicesParametersQueryDueDate'Variants),
    -- | queryEnding_before: Represents the parameter named \'ending_before\'
    --
    -- A cursor for use in pagination. \`ending_before\` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with \`obj_bar\`, your subsequent call can include \`ending_before=obj_bar\` in order to fetch the previous page of the list.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryEndingBefore :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | queryExpand: Represents the parameter named \'expand\'
    --
    -- Specifies which fields in the response should be expanded.
    GetInvoicesParameters -> Maybe [Text]
getInvoicesParametersQueryExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | queryLimit: Represents the parameter named \'limit\'
    --
    -- A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
    GetInvoicesParameters -> Maybe Int
getInvoicesParametersQueryLimit :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | queryStarting_after: Represents the parameter named \'starting_after\'
    --
    -- A cursor for use in pagination. \`starting_after\` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with \`obj_foo\`, your subsequent call can include \`starting_after=obj_foo\` in order to fetch the next page of the list.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryStartingAfter :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | queryStatus: Represents the parameter named \'status\'
    --
    -- The status of the invoice, one of \`draft\`, \`open\`, \`paid\`, \`uncollectible\`, or \`void\`. [Learn more](https:\/\/stripe.com\/docs\/billing\/invoices\/workflow\#workflow-overview)
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesParameters -> Maybe GetInvoicesParametersQueryStatus'
getInvoicesParametersQueryStatus :: (GHC.Maybe.Maybe GetInvoicesParametersQueryStatus'),
    -- | querySubscription: Represents the parameter named \'subscription\'
    --
    -- Only return invoices for the subscription specified by this subscription ID.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetInvoicesParameters -> Maybe Text
getInvoicesParametersQuerySubscription :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> GetInvoicesParameters -> ShowS
[GetInvoicesParameters] -> ShowS
GetInvoicesParameters -> String
(Int -> GetInvoicesParameters -> ShowS)
-> (GetInvoicesParameters -> String)
-> ([GetInvoicesParameters] -> ShowS)
-> Show GetInvoicesParameters
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesParameters] -> ShowS
$cshowList :: [GetInvoicesParameters] -> ShowS
show :: GetInvoicesParameters -> String
$cshow :: GetInvoicesParameters -> String
showsPrec :: Int -> GetInvoicesParameters -> ShowS
$cshowsPrec :: Int -> GetInvoicesParameters -> ShowS
GHC.Show.Show,
      GetInvoicesParameters -> GetInvoicesParameters -> Bool
(GetInvoicesParameters -> GetInvoicesParameters -> Bool)
-> (GetInvoicesParameters -> GetInvoicesParameters -> Bool)
-> Eq GetInvoicesParameters
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesParameters -> GetInvoicesParameters -> Bool
$c/= :: GetInvoicesParameters -> GetInvoicesParameters -> Bool
== :: GetInvoicesParameters -> GetInvoicesParameters -> Bool
$c== :: GetInvoicesParameters -> GetInvoicesParameters -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesParameters where
  toJSON :: GetInvoicesParameters -> Value
toJSON GetInvoicesParameters
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"queryCollection_method" Text -> Maybe GetInvoicesParametersQueryCollectionMethod' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryCollectionMethod'
getInvoicesParametersQueryCollectionMethod GetInvoicesParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryCreated" Text -> Maybe GetInvoicesParametersQueryCreated'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryCreated'Variants
getInvoicesParametersQueryCreated GetInvoicesParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryCustomer" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryCustomer GetInvoicesParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryDue_date" Text -> Maybe GetInvoicesParametersQueryDueDate'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryDueDate'Variants
getInvoicesParametersQueryDueDate GetInvoicesParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryEnding_before" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryEndingBefore GetInvoicesParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryExpand" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe [Text]
getInvoicesParametersQueryExpand GetInvoicesParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryLimit" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe Int
getInvoicesParametersQueryLimit GetInvoicesParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryStarting_after" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryStartingAfter GetInvoicesParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryStatus" Text -> Maybe GetInvoicesParametersQueryStatus' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe GetInvoicesParametersQueryStatus'
getInvoicesParametersQueryStatus GetInvoicesParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"querySubscription" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe Text
getInvoicesParametersQuerySubscription GetInvoicesParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesParameters -> Encoding
toEncoding GetInvoicesParameters
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"queryCollection_method" Text -> Maybe GetInvoicesParametersQueryCollectionMethod' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryCollectionMethod'
getInvoicesParametersQueryCollectionMethod GetInvoicesParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryCreated" Text -> Maybe GetInvoicesParametersQueryCreated'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryCreated'Variants
getInvoicesParametersQueryCreated GetInvoicesParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryCustomer" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryCustomer GetInvoicesParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryDue_date" Text -> Maybe GetInvoicesParametersQueryDueDate'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters
-> Maybe GetInvoicesParametersQueryDueDate'Variants
getInvoicesParametersQueryDueDate GetInvoicesParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryEnding_before" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryEndingBefore GetInvoicesParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryExpand" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe [Text]
getInvoicesParametersQueryExpand GetInvoicesParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryLimit" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe Int
getInvoicesParametersQueryLimit GetInvoicesParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryStarting_after" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe Text
getInvoicesParametersQueryStartingAfter GetInvoicesParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryStatus" Text -> Maybe GetInvoicesParametersQueryStatus' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe GetInvoicesParametersQueryStatus'
getInvoicesParametersQueryStatus GetInvoicesParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"querySubscription" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParameters -> Maybe Text
getInvoicesParametersQuerySubscription GetInvoicesParameters
obj))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesParameters where
  parseJSON :: Value -> Parser GetInvoicesParameters
parseJSON = String
-> (Object -> Parser GetInvoicesParameters)
-> Value
-> Parser GetInvoicesParameters
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesParameters" (\Object
obj -> ((((((((((Maybe GetInvoicesParametersQueryCollectionMethod'
 -> Maybe GetInvoicesParametersQueryCreated'Variants
 -> Maybe Text
 -> Maybe GetInvoicesParametersQueryDueDate'Variants
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Int
 -> Maybe Text
 -> Maybe GetInvoicesParametersQueryStatus'
 -> Maybe Text
 -> GetInvoicesParameters)
-> Parser
     (Maybe GetInvoicesParametersQueryCollectionMethod'
      -> Maybe GetInvoicesParametersQueryCreated'Variants
      -> Maybe Text
      -> Maybe GetInvoicesParametersQueryDueDate'Variants
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Int
      -> Maybe Text
      -> Maybe GetInvoicesParametersQueryStatus'
      -> Maybe Text
      -> GetInvoicesParameters)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe GetInvoicesParametersQueryCollectionMethod'
-> Maybe GetInvoicesParametersQueryCreated'Variants
-> Maybe Text
-> Maybe GetInvoicesParametersQueryDueDate'Variants
-> Maybe Text
-> Maybe [Text]
-> Maybe Int
-> Maybe Text
-> Maybe GetInvoicesParametersQueryStatus'
-> Maybe Text
-> GetInvoicesParameters
GetInvoicesParameters Parser
  (Maybe GetInvoicesParametersQueryCollectionMethod'
   -> Maybe GetInvoicesParametersQueryCreated'Variants
   -> Maybe Text
   -> Maybe GetInvoicesParametersQueryDueDate'Variants
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Int
   -> Maybe Text
   -> Maybe GetInvoicesParametersQueryStatus'
   -> Maybe Text
   -> GetInvoicesParameters)
-> Parser (Maybe GetInvoicesParametersQueryCollectionMethod')
-> Parser
     (Maybe GetInvoicesParametersQueryCreated'Variants
      -> Maybe Text
      -> Maybe GetInvoicesParametersQueryDueDate'Variants
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Int
      -> Maybe Text
      -> Maybe GetInvoicesParametersQueryStatus'
      -> Maybe Text
      -> GetInvoicesParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe GetInvoicesParametersQueryCollectionMethod')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryCollection_method")) Parser
  (Maybe GetInvoicesParametersQueryCreated'Variants
   -> Maybe Text
   -> Maybe GetInvoicesParametersQueryDueDate'Variants
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Int
   -> Maybe Text
   -> Maybe GetInvoicesParametersQueryStatus'
   -> Maybe Text
   -> GetInvoicesParameters)
-> Parser (Maybe GetInvoicesParametersQueryCreated'Variants)
-> Parser
     (Maybe Text
      -> Maybe GetInvoicesParametersQueryDueDate'Variants
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Int
      -> Maybe Text
      -> Maybe GetInvoicesParametersQueryStatus'
      -> Maybe Text
      -> GetInvoicesParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe GetInvoicesParametersQueryCreated'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryCreated")) Parser
  (Maybe Text
   -> Maybe GetInvoicesParametersQueryDueDate'Variants
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Int
   -> Maybe Text
   -> Maybe GetInvoicesParametersQueryStatus'
   -> Maybe Text
   -> GetInvoicesParameters)
-> Parser (Maybe Text)
-> Parser
     (Maybe GetInvoicesParametersQueryDueDate'Variants
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Int
      -> Maybe Text
      -> Maybe GetInvoicesParametersQueryStatus'
      -> Maybe Text
      -> GetInvoicesParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryCustomer")) Parser
  (Maybe GetInvoicesParametersQueryDueDate'Variants
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Int
   -> Maybe Text
   -> Maybe GetInvoicesParametersQueryStatus'
   -> Maybe Text
   -> GetInvoicesParameters)
-> Parser (Maybe GetInvoicesParametersQueryDueDate'Variants)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Int
      -> Maybe Text
      -> Maybe GetInvoicesParametersQueryStatus'
      -> Maybe Text
      -> GetInvoicesParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe GetInvoicesParametersQueryDueDate'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryDue_date")) Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe Int
   -> Maybe Text
   -> Maybe GetInvoicesParametersQueryStatus'
   -> Maybe Text
   -> GetInvoicesParameters)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe Int
      -> Maybe Text
      -> Maybe GetInvoicesParametersQueryStatus'
      -> Maybe Text
      -> GetInvoicesParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryEnding_before")) Parser
  (Maybe [Text]
   -> Maybe Int
   -> Maybe Text
   -> Maybe GetInvoicesParametersQueryStatus'
   -> Maybe Text
   -> GetInvoicesParameters)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe GetInvoicesParametersQueryStatus'
      -> Maybe Text
      -> GetInvoicesParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryExpand")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe GetInvoicesParametersQueryStatus'
   -> Maybe Text
   -> GetInvoicesParameters)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe GetInvoicesParametersQueryStatus'
      -> Maybe Text
      -> GetInvoicesParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryLimit")) Parser
  (Maybe Text
   -> Maybe GetInvoicesParametersQueryStatus'
   -> Maybe Text
   -> GetInvoicesParameters)
-> Parser (Maybe Text)
-> Parser
     (Maybe GetInvoicesParametersQueryStatus'
      -> Maybe Text -> GetInvoicesParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryStarting_after")) Parser
  (Maybe GetInvoicesParametersQueryStatus'
   -> Maybe Text -> GetInvoicesParameters)
-> Parser (Maybe GetInvoicesParametersQueryStatus')
-> Parser (Maybe Text -> GetInvoicesParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe GetInvoicesParametersQueryStatus')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryStatus")) Parser (Maybe Text -> GetInvoicesParameters)
-> Parser (Maybe Text) -> Parser GetInvoicesParameters
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"querySubscription"))

-- | Create a new 'GetInvoicesParameters' with all required fields.
mkGetInvoicesParameters :: GetInvoicesParameters
mkGetInvoicesParameters :: GetInvoicesParameters
mkGetInvoicesParameters =
  GetInvoicesParameters :: Maybe GetInvoicesParametersQueryCollectionMethod'
-> Maybe GetInvoicesParametersQueryCreated'Variants
-> Maybe Text
-> Maybe GetInvoicesParametersQueryDueDate'Variants
-> Maybe Text
-> Maybe [Text]
-> Maybe Int
-> Maybe Text
-> Maybe GetInvoicesParametersQueryStatus'
-> Maybe Text
-> GetInvoicesParameters
GetInvoicesParameters
    { getInvoicesParametersQueryCollectionMethod :: Maybe GetInvoicesParametersQueryCollectionMethod'
getInvoicesParametersQueryCollectionMethod = Maybe GetInvoicesParametersQueryCollectionMethod'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryCreated :: Maybe GetInvoicesParametersQueryCreated'Variants
getInvoicesParametersQueryCreated = Maybe GetInvoicesParametersQueryCreated'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryCustomer :: Maybe Text
getInvoicesParametersQueryCustomer = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryDueDate :: Maybe GetInvoicesParametersQueryDueDate'Variants
getInvoicesParametersQueryDueDate = Maybe GetInvoicesParametersQueryDueDate'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryEndingBefore :: Maybe Text
getInvoicesParametersQueryEndingBefore = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryExpand :: Maybe [Text]
getInvoicesParametersQueryExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryLimit :: Maybe Int
getInvoicesParametersQueryLimit = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryStartingAfter :: Maybe Text
getInvoicesParametersQueryStartingAfter = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryStatus :: Maybe GetInvoicesParametersQueryStatus'
getInvoicesParametersQueryStatus = Maybe GetInvoicesParametersQueryStatus'
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQuerySubscription :: Maybe Text
getInvoicesParametersQuerySubscription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/invoices.GET.parameters.properties.queryCollection_method@ in the specification.
--
-- Represents the parameter named \'collection_method\'
--
-- The collection method of the invoice to retrieve. Either \`charge_automatically\` or \`send_invoice\`.
data GetInvoicesParametersQueryCollectionMethod'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    GetInvoicesParametersQueryCollectionMethod'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    GetInvoicesParametersQueryCollectionMethod'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"charge_automatically"@
    GetInvoicesParametersQueryCollectionMethod'EnumChargeAutomatically
  | -- | Represents the JSON value @"send_invoice"@
    GetInvoicesParametersQueryCollectionMethod'EnumSendInvoice
  deriving (Int -> GetInvoicesParametersQueryCollectionMethod' -> ShowS
[GetInvoicesParametersQueryCollectionMethod'] -> ShowS
GetInvoicesParametersQueryCollectionMethod' -> String
(Int -> GetInvoicesParametersQueryCollectionMethod' -> ShowS)
-> (GetInvoicesParametersQueryCollectionMethod' -> String)
-> ([GetInvoicesParametersQueryCollectionMethod'] -> ShowS)
-> Show GetInvoicesParametersQueryCollectionMethod'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesParametersQueryCollectionMethod'] -> ShowS
$cshowList :: [GetInvoicesParametersQueryCollectionMethod'] -> ShowS
show :: GetInvoicesParametersQueryCollectionMethod' -> String
$cshow :: GetInvoicesParametersQueryCollectionMethod' -> String
showsPrec :: Int -> GetInvoicesParametersQueryCollectionMethod' -> ShowS
$cshowsPrec :: Int -> GetInvoicesParametersQueryCollectionMethod' -> ShowS
GHC.Show.Show, GetInvoicesParametersQueryCollectionMethod'
-> GetInvoicesParametersQueryCollectionMethod' -> Bool
(GetInvoicesParametersQueryCollectionMethod'
 -> GetInvoicesParametersQueryCollectionMethod' -> Bool)
-> (GetInvoicesParametersQueryCollectionMethod'
    -> GetInvoicesParametersQueryCollectionMethod' -> Bool)
-> Eq GetInvoicesParametersQueryCollectionMethod'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesParametersQueryCollectionMethod'
-> GetInvoicesParametersQueryCollectionMethod' -> Bool
$c/= :: GetInvoicesParametersQueryCollectionMethod'
-> GetInvoicesParametersQueryCollectionMethod' -> Bool
== :: GetInvoicesParametersQueryCollectionMethod'
-> GetInvoicesParametersQueryCollectionMethod' -> Bool
$c== :: GetInvoicesParametersQueryCollectionMethod'
-> GetInvoicesParametersQueryCollectionMethod' -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices.GET.parameters.properties.queryCreated.anyOf@ in the specification.
data GetInvoicesParametersQueryCreated'OneOf1 = GetInvoicesParametersQueryCreated'OneOf1
  { -- | gt
    GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Gt :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | gte
    GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Gte :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | lt
    GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Lt :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | lte
    GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Lte :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int -> GetInvoicesParametersQueryCreated'OneOf1 -> ShowS
[GetInvoicesParametersQueryCreated'OneOf1] -> ShowS
GetInvoicesParametersQueryCreated'OneOf1 -> String
(Int -> GetInvoicesParametersQueryCreated'OneOf1 -> ShowS)
-> (GetInvoicesParametersQueryCreated'OneOf1 -> String)
-> ([GetInvoicesParametersQueryCreated'OneOf1] -> ShowS)
-> Show GetInvoicesParametersQueryCreated'OneOf1
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesParametersQueryCreated'OneOf1] -> ShowS
$cshowList :: [GetInvoicesParametersQueryCreated'OneOf1] -> ShowS
show :: GetInvoicesParametersQueryCreated'OneOf1 -> String
$cshow :: GetInvoicesParametersQueryCreated'OneOf1 -> String
showsPrec :: Int -> GetInvoicesParametersQueryCreated'OneOf1 -> ShowS
$cshowsPrec :: Int -> GetInvoicesParametersQueryCreated'OneOf1 -> ShowS
GHC.Show.Show,
      GetInvoicesParametersQueryCreated'OneOf1
-> GetInvoicesParametersQueryCreated'OneOf1 -> Bool
(GetInvoicesParametersQueryCreated'OneOf1
 -> GetInvoicesParametersQueryCreated'OneOf1 -> Bool)
-> (GetInvoicesParametersQueryCreated'OneOf1
    -> GetInvoicesParametersQueryCreated'OneOf1 -> Bool)
-> Eq GetInvoicesParametersQueryCreated'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesParametersQueryCreated'OneOf1
-> GetInvoicesParametersQueryCreated'OneOf1 -> Bool
$c/= :: GetInvoicesParametersQueryCreated'OneOf1
-> GetInvoicesParametersQueryCreated'OneOf1 -> Bool
== :: GetInvoicesParametersQueryCreated'OneOf1
-> GetInvoicesParametersQueryCreated'OneOf1 -> Bool
$c== :: GetInvoicesParametersQueryCreated'OneOf1
-> GetInvoicesParametersQueryCreated'OneOf1 -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesParametersQueryCreated'OneOf1 where
  toJSON :: GetInvoicesParametersQueryCreated'OneOf1 -> Value
toJSON GetInvoicesParametersQueryCreated'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"gt" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Gt GetInvoicesParametersQueryCreated'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"gte" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Gte GetInvoicesParametersQueryCreated'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"lt" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Lt GetInvoicesParametersQueryCreated'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"lte" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Lte GetInvoicesParametersQueryCreated'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesParametersQueryCreated'OneOf1 -> Encoding
toEncoding GetInvoicesParametersQueryCreated'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"gt" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Gt GetInvoicesParametersQueryCreated'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"gte" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Gte GetInvoicesParametersQueryCreated'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"lt" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Lt GetInvoicesParametersQueryCreated'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"lte" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryCreated'OneOf1 -> Maybe Int
getInvoicesParametersQueryCreated'OneOf1Lte GetInvoicesParametersQueryCreated'OneOf1
obj))))

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

-- | Create a new 'GetInvoicesParametersQueryCreated'OneOf1' with all required fields.
mkGetInvoicesParametersQueryCreated'OneOf1 :: GetInvoicesParametersQueryCreated'OneOf1
mkGetInvoicesParametersQueryCreated'OneOf1 :: GetInvoicesParametersQueryCreated'OneOf1
mkGetInvoicesParametersQueryCreated'OneOf1 =
  GetInvoicesParametersQueryCreated'OneOf1 :: Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> GetInvoicesParametersQueryCreated'OneOf1
GetInvoicesParametersQueryCreated'OneOf1
    { getInvoicesParametersQueryCreated'OneOf1Gt :: Maybe Int
getInvoicesParametersQueryCreated'OneOf1Gt = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryCreated'OneOf1Gte :: Maybe Int
getInvoicesParametersQueryCreated'OneOf1Gte = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryCreated'OneOf1Lt :: Maybe Int
getInvoicesParametersQueryCreated'OneOf1Lt = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryCreated'OneOf1Lte :: Maybe Int
getInvoicesParametersQueryCreated'OneOf1Lte = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/invoices.GET.parameters.properties.queryCreated.anyOf@ in the specification.
--
-- Represents the parameter named \'created\'
data GetInvoicesParametersQueryCreated'Variants
  = GetInvoicesParametersQueryCreated'GetInvoicesParametersQueryCreated'OneOf1 GetInvoicesParametersQueryCreated'OneOf1
  | GetInvoicesParametersQueryCreated'Int GHC.Types.Int
  deriving (Int -> GetInvoicesParametersQueryCreated'Variants -> ShowS
[GetInvoicesParametersQueryCreated'Variants] -> ShowS
GetInvoicesParametersQueryCreated'Variants -> String
(Int -> GetInvoicesParametersQueryCreated'Variants -> ShowS)
-> (GetInvoicesParametersQueryCreated'Variants -> String)
-> ([GetInvoicesParametersQueryCreated'Variants] -> ShowS)
-> Show GetInvoicesParametersQueryCreated'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesParametersQueryCreated'Variants] -> ShowS
$cshowList :: [GetInvoicesParametersQueryCreated'Variants] -> ShowS
show :: GetInvoicesParametersQueryCreated'Variants -> String
$cshow :: GetInvoicesParametersQueryCreated'Variants -> String
showsPrec :: Int -> GetInvoicesParametersQueryCreated'Variants -> ShowS
$cshowsPrec :: Int -> GetInvoicesParametersQueryCreated'Variants -> ShowS
GHC.Show.Show, GetInvoicesParametersQueryCreated'Variants
-> GetInvoicesParametersQueryCreated'Variants -> Bool
(GetInvoicesParametersQueryCreated'Variants
 -> GetInvoicesParametersQueryCreated'Variants -> Bool)
-> (GetInvoicesParametersQueryCreated'Variants
    -> GetInvoicesParametersQueryCreated'Variants -> Bool)
-> Eq GetInvoicesParametersQueryCreated'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesParametersQueryCreated'Variants
-> GetInvoicesParametersQueryCreated'Variants -> Bool
$c/= :: GetInvoicesParametersQueryCreated'Variants
-> GetInvoicesParametersQueryCreated'Variants -> Bool
== :: GetInvoicesParametersQueryCreated'Variants
-> GetInvoicesParametersQueryCreated'Variants -> Bool
$c== :: GetInvoicesParametersQueryCreated'Variants
-> GetInvoicesParametersQueryCreated'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/invoices.GET.parameters.properties.queryDue_date.anyOf@ in the specification.
data GetInvoicesParametersQueryDueDate'OneOf1 = GetInvoicesParametersQueryDueDate'OneOf1
  { -- | gt
    GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Gt :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | gte
    GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Gte :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | lt
    GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Lt :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | lte
    GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Lte :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int -> GetInvoicesParametersQueryDueDate'OneOf1 -> ShowS
[GetInvoicesParametersQueryDueDate'OneOf1] -> ShowS
GetInvoicesParametersQueryDueDate'OneOf1 -> String
(Int -> GetInvoicesParametersQueryDueDate'OneOf1 -> ShowS)
-> (GetInvoicesParametersQueryDueDate'OneOf1 -> String)
-> ([GetInvoicesParametersQueryDueDate'OneOf1] -> ShowS)
-> Show GetInvoicesParametersQueryDueDate'OneOf1
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesParametersQueryDueDate'OneOf1] -> ShowS
$cshowList :: [GetInvoicesParametersQueryDueDate'OneOf1] -> ShowS
show :: GetInvoicesParametersQueryDueDate'OneOf1 -> String
$cshow :: GetInvoicesParametersQueryDueDate'OneOf1 -> String
showsPrec :: Int -> GetInvoicesParametersQueryDueDate'OneOf1 -> ShowS
$cshowsPrec :: Int -> GetInvoicesParametersQueryDueDate'OneOf1 -> ShowS
GHC.Show.Show,
      GetInvoicesParametersQueryDueDate'OneOf1
-> GetInvoicesParametersQueryDueDate'OneOf1 -> Bool
(GetInvoicesParametersQueryDueDate'OneOf1
 -> GetInvoicesParametersQueryDueDate'OneOf1 -> Bool)
-> (GetInvoicesParametersQueryDueDate'OneOf1
    -> GetInvoicesParametersQueryDueDate'OneOf1 -> Bool)
-> Eq GetInvoicesParametersQueryDueDate'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesParametersQueryDueDate'OneOf1
-> GetInvoicesParametersQueryDueDate'OneOf1 -> Bool
$c/= :: GetInvoicesParametersQueryDueDate'OneOf1
-> GetInvoicesParametersQueryDueDate'OneOf1 -> Bool
== :: GetInvoicesParametersQueryDueDate'OneOf1
-> GetInvoicesParametersQueryDueDate'OneOf1 -> Bool
$c== :: GetInvoicesParametersQueryDueDate'OneOf1
-> GetInvoicesParametersQueryDueDate'OneOf1 -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesParametersQueryDueDate'OneOf1 where
  toJSON :: GetInvoicesParametersQueryDueDate'OneOf1 -> Value
toJSON GetInvoicesParametersQueryDueDate'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"gt" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Gt GetInvoicesParametersQueryDueDate'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"gte" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Gte GetInvoicesParametersQueryDueDate'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"lt" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Lt GetInvoicesParametersQueryDueDate'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"lte" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Lte GetInvoicesParametersQueryDueDate'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesParametersQueryDueDate'OneOf1 -> Encoding
toEncoding GetInvoicesParametersQueryDueDate'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"gt" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Gt GetInvoicesParametersQueryDueDate'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"gte" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Gte GetInvoicesParametersQueryDueDate'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"lt" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Lt GetInvoicesParametersQueryDueDate'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"lte" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesParametersQueryDueDate'OneOf1 -> Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Lte GetInvoicesParametersQueryDueDate'OneOf1
obj))))

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

-- | Create a new 'GetInvoicesParametersQueryDueDate'OneOf1' with all required fields.
mkGetInvoicesParametersQueryDueDate'OneOf1 :: GetInvoicesParametersQueryDueDate'OneOf1
mkGetInvoicesParametersQueryDueDate'OneOf1 :: GetInvoicesParametersQueryDueDate'OneOf1
mkGetInvoicesParametersQueryDueDate'OneOf1 =
  GetInvoicesParametersQueryDueDate'OneOf1 :: Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> GetInvoicesParametersQueryDueDate'OneOf1
GetInvoicesParametersQueryDueDate'OneOf1
    { getInvoicesParametersQueryDueDate'OneOf1Gt :: Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Gt = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryDueDate'OneOf1Gte :: Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Gte = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryDueDate'OneOf1Lt :: Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Lt = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getInvoicesParametersQueryDueDate'OneOf1Lte :: Maybe Int
getInvoicesParametersQueryDueDate'OneOf1Lte = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/invoices.GET.parameters.properties.queryDue_date.anyOf@ in the specification.
--
-- Represents the parameter named \'due_date\'
data GetInvoicesParametersQueryDueDate'Variants
  = GetInvoicesParametersQueryDueDate'GetInvoicesParametersQueryDueDate'OneOf1 GetInvoicesParametersQueryDueDate'OneOf1
  | GetInvoicesParametersQueryDueDate'Int GHC.Types.Int
  deriving (Int -> GetInvoicesParametersQueryDueDate'Variants -> ShowS
[GetInvoicesParametersQueryDueDate'Variants] -> ShowS
GetInvoicesParametersQueryDueDate'Variants -> String
(Int -> GetInvoicesParametersQueryDueDate'Variants -> ShowS)
-> (GetInvoicesParametersQueryDueDate'Variants -> String)
-> ([GetInvoicesParametersQueryDueDate'Variants] -> ShowS)
-> Show GetInvoicesParametersQueryDueDate'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesParametersQueryDueDate'Variants] -> ShowS
$cshowList :: [GetInvoicesParametersQueryDueDate'Variants] -> ShowS
show :: GetInvoicesParametersQueryDueDate'Variants -> String
$cshow :: GetInvoicesParametersQueryDueDate'Variants -> String
showsPrec :: Int -> GetInvoicesParametersQueryDueDate'Variants -> ShowS
$cshowsPrec :: Int -> GetInvoicesParametersQueryDueDate'Variants -> ShowS
GHC.Show.Show, GetInvoicesParametersQueryDueDate'Variants
-> GetInvoicesParametersQueryDueDate'Variants -> Bool
(GetInvoicesParametersQueryDueDate'Variants
 -> GetInvoicesParametersQueryDueDate'Variants -> Bool)
-> (GetInvoicesParametersQueryDueDate'Variants
    -> GetInvoicesParametersQueryDueDate'Variants -> Bool)
-> Eq GetInvoicesParametersQueryDueDate'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesParametersQueryDueDate'Variants
-> GetInvoicesParametersQueryDueDate'Variants -> Bool
$c/= :: GetInvoicesParametersQueryDueDate'Variants
-> GetInvoicesParametersQueryDueDate'Variants -> Bool
== :: GetInvoicesParametersQueryDueDate'Variants
-> GetInvoicesParametersQueryDueDate'Variants -> Bool
$c== :: GetInvoicesParametersQueryDueDate'Variants
-> GetInvoicesParametersQueryDueDate'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @paths.\/v1\/invoices.GET.parameters.properties.queryStatus@ in the specification.
--
-- Represents the parameter named \'status\'
--
-- The status of the invoice, one of \`draft\`, \`open\`, \`paid\`, \`uncollectible\`, or \`void\`. [Learn more](https:\/\/stripe.com\/docs\/billing\/invoices\/workflow\#workflow-overview)
data GetInvoicesParametersQueryStatus'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    GetInvoicesParametersQueryStatus'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    GetInvoicesParametersQueryStatus'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"draft"@
    GetInvoicesParametersQueryStatus'EnumDraft
  | -- | Represents the JSON value @"open"@
    GetInvoicesParametersQueryStatus'EnumOpen
  | -- | Represents the JSON value @"paid"@
    GetInvoicesParametersQueryStatus'EnumPaid
  | -- | Represents the JSON value @"uncollectible"@
    GetInvoicesParametersQueryStatus'EnumUncollectible
  | -- | Represents the JSON value @"void"@
    GetInvoicesParametersQueryStatus'EnumVoid
  deriving (Int -> GetInvoicesParametersQueryStatus' -> ShowS
[GetInvoicesParametersQueryStatus'] -> ShowS
GetInvoicesParametersQueryStatus' -> String
(Int -> GetInvoicesParametersQueryStatus' -> ShowS)
-> (GetInvoicesParametersQueryStatus' -> String)
-> ([GetInvoicesParametersQueryStatus'] -> ShowS)
-> Show GetInvoicesParametersQueryStatus'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesParametersQueryStatus'] -> ShowS
$cshowList :: [GetInvoicesParametersQueryStatus'] -> ShowS
show :: GetInvoicesParametersQueryStatus' -> String
$cshow :: GetInvoicesParametersQueryStatus' -> String
showsPrec :: Int -> GetInvoicesParametersQueryStatus' -> ShowS
$cshowsPrec :: Int -> GetInvoicesParametersQueryStatus' -> ShowS
GHC.Show.Show, GetInvoicesParametersQueryStatus'
-> GetInvoicesParametersQueryStatus' -> Bool
(GetInvoicesParametersQueryStatus'
 -> GetInvoicesParametersQueryStatus' -> Bool)
-> (GetInvoicesParametersQueryStatus'
    -> GetInvoicesParametersQueryStatus' -> Bool)
-> Eq GetInvoicesParametersQueryStatus'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesParametersQueryStatus'
-> GetInvoicesParametersQueryStatus' -> Bool
$c/= :: GetInvoicesParametersQueryStatus'
-> GetInvoicesParametersQueryStatus' -> Bool
== :: GetInvoicesParametersQueryStatus'
-> GetInvoicesParametersQueryStatus' -> Bool
$c== :: GetInvoicesParametersQueryStatus'
-> GetInvoicesParametersQueryStatus' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesParametersQueryStatus' where
  toJSON :: GetInvoicesParametersQueryStatus' -> Value
toJSON (GetInvoicesParametersQueryStatus'Other Value
val) = Value
val
  toJSON (GetInvoicesParametersQueryStatus'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'EnumDraft) = Value
"draft"
  toJSON (GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'EnumOpen) = Value
"open"
  toJSON (GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'EnumPaid) = Value
"paid"
  toJSON (GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'EnumUncollectible) = Value
"uncollectible"
  toJSON (GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'EnumVoid) = Value
"void"

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesParametersQueryStatus' where
  parseJSON :: Value -> Parser GetInvoicesParametersQueryStatus'
parseJSON Value
val =
    GetInvoicesParametersQueryStatus'
-> Parser GetInvoicesParametersQueryStatus'
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
"draft" -> GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'EnumDraft
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"open" -> GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'EnumOpen
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"paid" -> GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'EnumPaid
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"uncollectible" -> GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'EnumUncollectible
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"void" -> GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'EnumVoid
            | Bool
GHC.Base.otherwise -> Value -> GetInvoicesParametersQueryStatus'
GetInvoicesParametersQueryStatus'Other Value
val
      )

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

-- | Defines the object schema located at @paths.\/v1\/invoices.GET.responses.200.content.application\/json.schema@ in the specification.
data GetInvoicesResponseBody200 = GetInvoicesResponseBody200
  { -- | data
    GetInvoicesResponseBody200 -> [Invoice]
getInvoicesResponseBody200Data :: ([Invoice]),
    -- | has_more: True if this list has another page of items after this one that can be fetched.
    GetInvoicesResponseBody200 -> Bool
getInvoicesResponseBody200HasMore :: GHC.Types.Bool,
    -- | url: The URL where this list can be accessed.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    -- * Must match pattern \'^\/v1\/invoices\'
    GetInvoicesResponseBody200 -> Text
getInvoicesResponseBody200Url :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> GetInvoicesResponseBody200 -> ShowS
[GetInvoicesResponseBody200] -> ShowS
GetInvoicesResponseBody200 -> String
(Int -> GetInvoicesResponseBody200 -> ShowS)
-> (GetInvoicesResponseBody200 -> String)
-> ([GetInvoicesResponseBody200] -> ShowS)
-> Show GetInvoicesResponseBody200
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetInvoicesResponseBody200] -> ShowS
$cshowList :: [GetInvoicesResponseBody200] -> ShowS
show :: GetInvoicesResponseBody200 -> String
$cshow :: GetInvoicesResponseBody200 -> String
showsPrec :: Int -> GetInvoicesResponseBody200 -> ShowS
$cshowsPrec :: Int -> GetInvoicesResponseBody200 -> ShowS
GHC.Show.Show,
      GetInvoicesResponseBody200 -> GetInvoicesResponseBody200 -> Bool
(GetInvoicesResponseBody200 -> GetInvoicesResponseBody200 -> Bool)
-> (GetInvoicesResponseBody200
    -> GetInvoicesResponseBody200 -> Bool)
-> Eq GetInvoicesResponseBody200
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetInvoicesResponseBody200 -> GetInvoicesResponseBody200 -> Bool
$c/= :: GetInvoicesResponseBody200 -> GetInvoicesResponseBody200 -> Bool
== :: GetInvoicesResponseBody200 -> GetInvoicesResponseBody200 -> Bool
$c== :: GetInvoicesResponseBody200 -> GetInvoicesResponseBody200 -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetInvoicesResponseBody200 where
  toJSON :: GetInvoicesResponseBody200 -> Value
toJSON GetInvoicesResponseBody200
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"data" Text -> [Invoice] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesResponseBody200 -> [Invoice]
getInvoicesResponseBody200Data GetInvoicesResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"has_more" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesResponseBody200 -> Bool
getInvoicesResponseBody200HasMore GetInvoicesResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"url" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesResponseBody200 -> Text
getInvoicesResponseBody200Url GetInvoicesResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetInvoicesResponseBody200 -> Encoding
toEncoding GetInvoicesResponseBody200
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"data" Text -> [Invoice] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesResponseBody200 -> [Invoice]
getInvoicesResponseBody200Data GetInvoicesResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"has_more" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesResponseBody200 -> Bool
getInvoicesResponseBody200HasMore GetInvoicesResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"url" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetInvoicesResponseBody200 -> Text
getInvoicesResponseBody200Url GetInvoicesResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"object" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list"))))

instance Data.Aeson.Types.FromJSON.FromJSON GetInvoicesResponseBody200 where
  parseJSON :: Value -> Parser GetInvoicesResponseBody200
parseJSON = String
-> (Object -> Parser GetInvoicesResponseBody200)
-> Value
-> Parser GetInvoicesResponseBody200
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetInvoicesResponseBody200" (\Object
obj -> ((([Invoice] -> Bool -> Text -> GetInvoicesResponseBody200)
-> Parser ([Invoice] -> Bool -> Text -> GetInvoicesResponseBody200)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [Invoice] -> Bool -> Text -> GetInvoicesResponseBody200
GetInvoicesResponseBody200 Parser ([Invoice] -> Bool -> Text -> GetInvoicesResponseBody200)
-> Parser [Invoice]
-> Parser (Bool -> Text -> GetInvoicesResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [Invoice]
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"data")) Parser (Bool -> Text -> GetInvoicesResponseBody200)
-> Parser Bool -> Parser (Text -> GetInvoicesResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"has_more")) Parser (Text -> GetInvoicesResponseBody200)
-> Parser Text -> Parser GetInvoicesResponseBody200
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"url"))

-- | Create a new 'GetInvoicesResponseBody200' with all required fields.
mkGetInvoicesResponseBody200 ::
  -- | 'getInvoicesResponseBody200Data'
  [Invoice] ->
  -- | 'getInvoicesResponseBody200HasMore'
  GHC.Types.Bool ->
  -- | 'getInvoicesResponseBody200Url'
  Data.Text.Internal.Text ->
  GetInvoicesResponseBody200
mkGetInvoicesResponseBody200 :: [Invoice] -> Bool -> Text -> GetInvoicesResponseBody200
mkGetInvoicesResponseBody200 [Invoice]
getInvoicesResponseBody200Data Bool
getInvoicesResponseBody200HasMore Text
getInvoicesResponseBody200Url =
  GetInvoicesResponseBody200 :: [Invoice] -> Bool -> Text -> GetInvoicesResponseBody200
GetInvoicesResponseBody200
    { getInvoicesResponseBody200Data :: [Invoice]
getInvoicesResponseBody200Data = [Invoice]
getInvoicesResponseBody200Data,
      getInvoicesResponseBody200HasMore :: Bool
getInvoicesResponseBody200HasMore = Bool
getInvoicesResponseBody200HasMore,
      getInvoicesResponseBody200Url :: Text
getInvoicesResponseBody200Url = Text
getInvoicesResponseBody200Url
    }