{-# 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 postSources
module StripeAPI.Operations.PostSources where

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

-- | > POST /v1/sources
--
-- \<p>Creates a new source object.\<\/p>
postSources ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | The request body to send
  GHC.Maybe.Maybe PostSourcesRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.StripeT m (Network.HTTP.Client.Types.Response PostSourcesResponse)
postSources :: Maybe PostSourcesRequestBody
-> StripeT m (Response PostSourcesResponse)
postSources Maybe PostSourcesRequestBody
body =
  (Response ByteString -> Response PostSourcesResponse)
-> StripeT m (Response ByteString)
-> StripeT m (Response PostSourcesResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
    ( \Response ByteString
response_0 ->
        (ByteString -> PostSourcesResponse)
-> Response ByteString -> Response PostSourcesResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
          ( (String -> PostSourcesResponse)
-> (PostSourcesResponse -> PostSourcesResponse)
-> Either String PostSourcesResponse
-> PostSourcesResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> PostSourcesResponse
PostSourcesResponseError PostSourcesResponse -> PostSourcesResponse
forall a. a -> a
GHC.Base.id
              (Either String PostSourcesResponse -> PostSourcesResponse)
-> (ByteString -> Either String PostSourcesResponse)
-> ByteString
-> PostSourcesResponse
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) ->
                                   Source -> PostSourcesResponse
PostSourcesResponse200
                                     (Source -> PostSourcesResponse)
-> Either String Source -> Either String PostSourcesResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String Source
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            Source
                                                      )
                                 | 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 -> PostSourcesResponse
PostSourcesResponseDefault
                                     (Error -> PostSourcesResponse)
-> Either String Error -> Either String PostSourcesResponse
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 PostSourcesResponse
forall a b. a -> Either a b
Data.Either.Left String
"Missing default response type"
                         )
                Response ByteString
response_0
          )
          Response ByteString
response_0
    )
    (Text
-> Text
-> [QueryParameter]
-> Maybe PostSourcesRequestBody
-> RequestBodyEncoding
-> StripeT m (Response ByteString)
forall (m :: * -> *) body.
(MonadHTTP m, ToJSON body) =>
Text
-> Text
-> [QueryParameter]
-> Maybe body
-> RequestBodyEncoding
-> StripeT m (Response ByteString)
StripeAPI.Common.doBodyCallWithConfigurationM (Text -> Text
Data.Text.toUpper (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
GHC.Base.$ String -> Text
Data.Text.pack String
"POST") (String -> Text
Data.Text.pack String
"/v1/sources") [QueryParameter]
forall a. Monoid a => a
GHC.Base.mempty Maybe PostSourcesRequestBody
body RequestBodyEncoding
StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostSourcesRequestBody = PostSourcesRequestBody
  { -- | amount: Amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for \`single_use\` sources. Not supported for \`receiver\` type sources, where charge amount may not be specified until funds land.
    PostSourcesRequestBody -> Maybe Int
postSourcesRequestBodyAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/currencies) associated with the source. This is the currency for which the source will be chargeable once ready.
    PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyCurrency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | customer: The \`Customer\` to whom the original source is attached to. Must be set when the original source is not a \`Source\` (e.g., \`Card\`).
    --
    -- Constraints:
    --
    -- * Maximum length of 500
    PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyCustomer :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | expand: Specifies which fields in the response should be expanded.
    PostSourcesRequestBody -> Maybe [Text]
postSourcesRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | flow: The authentication \`flow\` of the source to create. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`. It is generally inferred unless a type supports multiple flows.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBody -> Maybe PostSourcesRequestBodyFlow'
postSourcesRequestBodyFlow :: (GHC.Maybe.Maybe PostSourcesRequestBodyFlow'),
    -- | mandate: Information about a mandate possibility attached to a source object (generally for bank debits) as well as its acceptance status.
    PostSourcesRequestBody -> Maybe PostSourcesRequestBodyMandate'
postSourcesRequestBodyMandate :: (GHC.Maybe.Maybe PostSourcesRequestBodyMandate'),
    -- | metadata
    PostSourcesRequestBody -> Maybe Object
postSourcesRequestBodyMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | original_source: The source to share.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyOriginalSource :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
    PostSourcesRequestBody -> Maybe PostSourcesRequestBodyOwner'
postSourcesRequestBodyOwner :: (GHC.Maybe.Maybe PostSourcesRequestBodyOwner'),
    -- | receiver: Optional parameters for the receiver flow. Can be set only if the source is a receiver (\`flow\` is \`receiver\`).
    PostSourcesRequestBody -> Maybe PostSourcesRequestBodyReceiver'
postSourcesRequestBodyReceiver :: (GHC.Maybe.Maybe PostSourcesRequestBodyReceiver'),
    -- | redirect: Parameters required for the redirect flow. Required if the source is authenticated by a redirect (\`flow\` is \`redirect\`).
    PostSourcesRequestBody -> Maybe PostSourcesRequestBodyRedirect'
postSourcesRequestBodyRedirect :: (GHC.Maybe.Maybe PostSourcesRequestBodyRedirect'),
    -- | source_order: Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it.
    PostSourcesRequestBody -> Maybe PostSourcesRequestBodySourceOrder'
postSourcesRequestBodySourceOrder :: (GHC.Maybe.Maybe PostSourcesRequestBodySourceOrder'),
    -- | statement_descriptor: An arbitrary string to be displayed on your customer\'s statement. As an example, if your website is \`RunClub\` and the item you\'re charging for is a race ticket, you may want to specify a \`statement_descriptor\` of \`RunClub 5K race ticket.\` While many payment types will display this information, some may not display it at all.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyStatementDescriptor :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | token: An optional token used to create the source. When passed, token properties will override source parameters.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyToken :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | type: The \`type\` of the source to create. Required unless \`customer\` and \`original_source\` are specified (see the [Cloning card Sources](https:\/\/stripe.com\/docs\/sources\/connect\#cloning-card-sources) guide)
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyType :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | usage
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBody -> Maybe PostSourcesRequestBodyUsage'
postSourcesRequestBodyUsage :: (GHC.Maybe.Maybe PostSourcesRequestBodyUsage')
  }
  deriving
    ( Int -> PostSourcesRequestBody -> ShowS
[PostSourcesRequestBody] -> ShowS
PostSourcesRequestBody -> String
(Int -> PostSourcesRequestBody -> ShowS)
-> (PostSourcesRequestBody -> String)
-> ([PostSourcesRequestBody] -> ShowS)
-> Show PostSourcesRequestBody
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBody] -> ShowS
$cshowList :: [PostSourcesRequestBody] -> ShowS
show :: PostSourcesRequestBody -> String
$cshow :: PostSourcesRequestBody -> String
showsPrec :: Int -> PostSourcesRequestBody -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBody -> ShowS
GHC.Show.Show,
      PostSourcesRequestBody -> PostSourcesRequestBody -> Bool
(PostSourcesRequestBody -> PostSourcesRequestBody -> Bool)
-> (PostSourcesRequestBody -> PostSourcesRequestBody -> Bool)
-> Eq PostSourcesRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBody -> PostSourcesRequestBody -> Bool
$c/= :: PostSourcesRequestBody -> PostSourcesRequestBody -> Bool
== :: PostSourcesRequestBody -> PostSourcesRequestBody -> Bool
$c== :: PostSourcesRequestBody -> PostSourcesRequestBody -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBody where
  toJSON :: PostSourcesRequestBody -> Value
toJSON PostSourcesRequestBody
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Int
postSourcesRequestBodyAmount PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyCurrency PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyCustomer PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"expand" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe [Text]
postSourcesRequestBodyExpand PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"flow" Text -> Maybe PostSourcesRequestBodyFlow' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyFlow'
postSourcesRequestBodyFlow PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"mandate" Text -> Maybe PostSourcesRequestBodyMandate' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyMandate'
postSourcesRequestBodyMandate PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Object
postSourcesRequestBodyMetadata PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"original_source" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyOriginalSource PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"owner" Text -> Maybe PostSourcesRequestBodyOwner' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyOwner'
postSourcesRequestBodyOwner PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"receiver" Text -> Maybe PostSourcesRequestBodyReceiver' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyReceiver'
postSourcesRequestBodyReceiver PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"redirect" Text -> Maybe PostSourcesRequestBodyRedirect' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyRedirect'
postSourcesRequestBodyRedirect PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"source_order" Text -> Maybe PostSourcesRequestBodySourceOrder' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodySourceOrder'
postSourcesRequestBodySourceOrder PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"statement_descriptor" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyStatementDescriptor PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"token" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyToken PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyType PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"usage" Text -> Maybe PostSourcesRequestBodyUsage' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyUsage'
postSourcesRequestBodyUsage PostSourcesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSourcesRequestBody -> Encoding
toEncoding PostSourcesRequestBody
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Int
postSourcesRequestBodyAmount PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyCurrency PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyCustomer PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"expand" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe [Text]
postSourcesRequestBodyExpand PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"flow" Text -> Maybe PostSourcesRequestBodyFlow' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyFlow'
postSourcesRequestBodyFlow PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"mandate" Text -> Maybe PostSourcesRequestBodyMandate' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyMandate'
postSourcesRequestBodyMandate PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Object
postSourcesRequestBodyMetadata PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"original_source" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyOriginalSource PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"owner" Text -> Maybe PostSourcesRequestBodyOwner' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyOwner'
postSourcesRequestBodyOwner PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"receiver" Text -> Maybe PostSourcesRequestBodyReceiver' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyReceiver'
postSourcesRequestBodyReceiver PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"redirect" Text -> Maybe PostSourcesRequestBodyRedirect' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyRedirect'
postSourcesRequestBodyRedirect PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"source_order" Text -> Maybe PostSourcesRequestBodySourceOrder' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodySourceOrder'
postSourcesRequestBodySourceOrder PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"statement_descriptor" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyStatementDescriptor PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"token" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyToken PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"type" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe Text
postSourcesRequestBodyType PostSourcesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"usage" Text -> Maybe PostSourcesRequestBodyUsage' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBody -> Maybe PostSourcesRequestBodyUsage'
postSourcesRequestBodyUsage PostSourcesRequestBody
obj))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBody where
  parseJSON :: Value -> Parser PostSourcesRequestBody
parseJSON = String
-> (Object -> Parser PostSourcesRequestBody)
-> Value
-> Parser PostSourcesRequestBody
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSourcesRequestBody" (\Object
obj -> ((((((((((((((((Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe PostSourcesRequestBodyFlow'
 -> Maybe PostSourcesRequestBodyMandate'
 -> Maybe Object
 -> Maybe Text
 -> Maybe PostSourcesRequestBodyOwner'
 -> Maybe PostSourcesRequestBodyReceiver'
 -> Maybe PostSourcesRequestBodyRedirect'
 -> Maybe PostSourcesRequestBodySourceOrder'
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe PostSourcesRequestBodyUsage'
 -> PostSourcesRequestBody)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostSourcesRequestBodyFlow'
      -> Maybe PostSourcesRequestBodyMandate'
      -> Maybe Object
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyOwner'
      -> Maybe PostSourcesRequestBodyReceiver'
      -> Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe PostSourcesRequestBodyFlow'
-> Maybe PostSourcesRequestBodyMandate'
-> Maybe Object
-> Maybe Text
-> Maybe PostSourcesRequestBodyOwner'
-> Maybe PostSourcesRequestBodyReceiver'
-> Maybe PostSourcesRequestBodyRedirect'
-> Maybe PostSourcesRequestBodySourceOrder'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PostSourcesRequestBodyUsage'
-> PostSourcesRequestBody
PostSourcesRequestBody Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostSourcesRequestBodyFlow'
   -> Maybe PostSourcesRequestBodyMandate'
   -> Maybe Object
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyOwner'
   -> Maybe PostSourcesRequestBodyReceiver'
   -> Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostSourcesRequestBodyFlow'
      -> Maybe PostSourcesRequestBodyMandate'
      -> Maybe Object
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyOwner'
      -> Maybe PostSourcesRequestBodyReceiver'
      -> Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostSourcesRequestBodyFlow'
   -> Maybe PostSourcesRequestBodyMandate'
   -> Maybe Object
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyOwner'
   -> Maybe PostSourcesRequestBodyReceiver'
   -> Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe PostSourcesRequestBodyFlow'
      -> Maybe PostSourcesRequestBodyMandate'
      -> Maybe Object
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyOwner'
      -> Maybe PostSourcesRequestBodyReceiver'
      -> Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"currency")) Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe PostSourcesRequestBodyFlow'
   -> Maybe PostSourcesRequestBodyMandate'
   -> Maybe Object
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyOwner'
   -> Maybe PostSourcesRequestBodyReceiver'
   -> Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe PostSourcesRequestBodyFlow'
      -> Maybe PostSourcesRequestBodyMandate'
      -> Maybe Object
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyOwner'
      -> Maybe PostSourcesRequestBodyReceiver'
      -> Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
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
"customer")) Parser
  (Maybe [Text]
   -> Maybe PostSourcesRequestBodyFlow'
   -> Maybe PostSourcesRequestBodyMandate'
   -> Maybe Object
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyOwner'
   -> Maybe PostSourcesRequestBodyReceiver'
   -> Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe PostSourcesRequestBodyFlow'
      -> Maybe PostSourcesRequestBodyMandate'
      -> Maybe Object
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyOwner'
      -> Maybe PostSourcesRequestBodyReceiver'
      -> Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"expand")) Parser
  (Maybe PostSourcesRequestBodyFlow'
   -> Maybe PostSourcesRequestBodyMandate'
   -> Maybe Object
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyOwner'
   -> Maybe PostSourcesRequestBodyReceiver'
   -> Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe PostSourcesRequestBodyFlow')
-> Parser
     (Maybe PostSourcesRequestBodyMandate'
      -> Maybe Object
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyOwner'
      -> Maybe PostSourcesRequestBodyReceiver'
      -> Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostSourcesRequestBodyFlow')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"flow")) Parser
  (Maybe PostSourcesRequestBodyMandate'
   -> Maybe Object
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyOwner'
   -> Maybe PostSourcesRequestBodyReceiver'
   -> Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe PostSourcesRequestBodyMandate')
-> Parser
     (Maybe Object
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyOwner'
      -> Maybe PostSourcesRequestBodyReceiver'
      -> Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostSourcesRequestBodyMandate')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"mandate")) Parser
  (Maybe Object
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyOwner'
   -> Maybe PostSourcesRequestBodyReceiver'
   -> Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe Object)
-> Parser
     (Maybe Text
      -> Maybe PostSourcesRequestBodyOwner'
      -> Maybe PostSourcesRequestBodyReceiver'
      -> Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Object)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe Text
   -> Maybe PostSourcesRequestBodyOwner'
   -> Maybe PostSourcesRequestBodyReceiver'
   -> Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostSourcesRequestBodyOwner'
      -> Maybe PostSourcesRequestBodyReceiver'
      -> Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
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
"original_source")) Parser
  (Maybe PostSourcesRequestBodyOwner'
   -> Maybe PostSourcesRequestBodyReceiver'
   -> Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe PostSourcesRequestBodyOwner')
-> Parser
     (Maybe PostSourcesRequestBodyReceiver'
      -> Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostSourcesRequestBodyOwner')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"owner")) Parser
  (Maybe PostSourcesRequestBodyReceiver'
   -> Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe PostSourcesRequestBodyReceiver')
-> Parser
     (Maybe PostSourcesRequestBodyRedirect'
      -> Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostSourcesRequestBodyReceiver')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"receiver")) Parser
  (Maybe PostSourcesRequestBodyRedirect'
   -> Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe PostSourcesRequestBodyRedirect')
-> Parser
     (Maybe PostSourcesRequestBodySourceOrder'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostSourcesRequestBodyRedirect')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"redirect")) Parser
  (Maybe PostSourcesRequestBodySourceOrder'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe PostSourcesRequestBodySourceOrder')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostSourcesRequestBodySourceOrder')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"source_order")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyUsage'
      -> PostSourcesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"statement_descriptor")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyUsage'
   -> PostSourcesRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe PostSourcesRequestBodyUsage' -> PostSourcesRequestBody)
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
"token")) Parser
  (Maybe Text
   -> Maybe PostSourcesRequestBodyUsage' -> PostSourcesRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostSourcesRequestBodyUsage' -> PostSourcesRequestBody)
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
"type")) Parser
  (Maybe PostSourcesRequestBodyUsage' -> PostSourcesRequestBody)
-> Parser (Maybe PostSourcesRequestBodyUsage')
-> Parser PostSourcesRequestBody
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostSourcesRequestBodyUsage')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"usage"))

-- | Create a new 'PostSourcesRequestBody' with all required fields.
mkPostSourcesRequestBody :: PostSourcesRequestBody
mkPostSourcesRequestBody :: PostSourcesRequestBody
mkPostSourcesRequestBody =
  PostSourcesRequestBody :: Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe PostSourcesRequestBodyFlow'
-> Maybe PostSourcesRequestBodyMandate'
-> Maybe Object
-> Maybe Text
-> Maybe PostSourcesRequestBodyOwner'
-> Maybe PostSourcesRequestBodyReceiver'
-> Maybe PostSourcesRequestBodyRedirect'
-> Maybe PostSourcesRequestBodySourceOrder'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PostSourcesRequestBodyUsage'
-> PostSourcesRequestBody
PostSourcesRequestBody
    { postSourcesRequestBodyAmount :: Maybe Int
postSourcesRequestBodyAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyCurrency :: Maybe Text
postSourcesRequestBodyCurrency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyCustomer :: Maybe Text
postSourcesRequestBodyCustomer = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyExpand :: Maybe [Text]
postSourcesRequestBodyExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyFlow :: Maybe PostSourcesRequestBodyFlow'
postSourcesRequestBodyFlow = Maybe PostSourcesRequestBodyFlow'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate :: Maybe PostSourcesRequestBodyMandate'
postSourcesRequestBodyMandate = Maybe PostSourcesRequestBodyMandate'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMetadata :: Maybe Object
postSourcesRequestBodyMetadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyOriginalSource :: Maybe Text
postSourcesRequestBodyOriginalSource = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyOwner :: Maybe PostSourcesRequestBodyOwner'
postSourcesRequestBodyOwner = Maybe PostSourcesRequestBodyOwner'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyReceiver :: Maybe PostSourcesRequestBodyReceiver'
postSourcesRequestBodyReceiver = Maybe PostSourcesRequestBodyReceiver'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyRedirect :: Maybe PostSourcesRequestBodyRedirect'
postSourcesRequestBodyRedirect = Maybe PostSourcesRequestBodyRedirect'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder :: Maybe PostSourcesRequestBodySourceOrder'
postSourcesRequestBodySourceOrder = Maybe PostSourcesRequestBodySourceOrder'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyStatementDescriptor :: Maybe Text
postSourcesRequestBodyStatementDescriptor = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyToken :: Maybe Text
postSourcesRequestBodyToken = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyType :: Maybe Text
postSourcesRequestBodyType = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyUsage :: Maybe PostSourcesRequestBodyUsage'
postSourcesRequestBodyUsage = Maybe PostSourcesRequestBodyUsage'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.flow@ in the specification.
--
-- The authentication \`flow\` of the source to create. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`. It is generally inferred unless a type supports multiple flows.
data PostSourcesRequestBodyFlow'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSourcesRequestBodyFlow'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.
    PostSourcesRequestBodyFlow'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"code_verification"@
    PostSourcesRequestBodyFlow'EnumCodeVerification
  | -- | Represents the JSON value @"none"@
    PostSourcesRequestBodyFlow'EnumNone
  | -- | Represents the JSON value @"receiver"@
    PostSourcesRequestBodyFlow'EnumReceiver
  | -- | Represents the JSON value @"redirect"@
    PostSourcesRequestBodyFlow'EnumRedirect
  deriving (Int -> PostSourcesRequestBodyFlow' -> ShowS
[PostSourcesRequestBodyFlow'] -> ShowS
PostSourcesRequestBodyFlow' -> String
(Int -> PostSourcesRequestBodyFlow' -> ShowS)
-> (PostSourcesRequestBodyFlow' -> String)
-> ([PostSourcesRequestBodyFlow'] -> ShowS)
-> Show PostSourcesRequestBodyFlow'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyFlow'] -> ShowS
$cshowList :: [PostSourcesRequestBodyFlow'] -> ShowS
show :: PostSourcesRequestBodyFlow' -> String
$cshow :: PostSourcesRequestBodyFlow' -> String
showsPrec :: Int -> PostSourcesRequestBodyFlow' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyFlow' -> ShowS
GHC.Show.Show, PostSourcesRequestBodyFlow' -> PostSourcesRequestBodyFlow' -> Bool
(PostSourcesRequestBodyFlow'
 -> PostSourcesRequestBodyFlow' -> Bool)
-> (PostSourcesRequestBodyFlow'
    -> PostSourcesRequestBodyFlow' -> Bool)
-> Eq PostSourcesRequestBodyFlow'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyFlow' -> PostSourcesRequestBodyFlow' -> Bool
$c/= :: PostSourcesRequestBodyFlow' -> PostSourcesRequestBodyFlow' -> Bool
== :: PostSourcesRequestBodyFlow' -> PostSourcesRequestBodyFlow' -> Bool
$c== :: PostSourcesRequestBodyFlow' -> PostSourcesRequestBodyFlow' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyFlow' where
  toJSON :: PostSourcesRequestBodyFlow' -> Value
toJSON (PostSourcesRequestBodyFlow'Other Value
val) = Value
val
  toJSON (PostSourcesRequestBodyFlow'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSourcesRequestBodyFlow'
PostSourcesRequestBodyFlow'EnumCodeVerification) = Value
"code_verification"
  toJSON (PostSourcesRequestBodyFlow'
PostSourcesRequestBodyFlow'EnumNone) = Value
"none"
  toJSON (PostSourcesRequestBodyFlow'
PostSourcesRequestBodyFlow'EnumReceiver) = Value
"receiver"
  toJSON (PostSourcesRequestBodyFlow'
PostSourcesRequestBodyFlow'EnumRedirect) = Value
"redirect"

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodyFlow' where
  parseJSON :: Value -> Parser PostSourcesRequestBodyFlow'
parseJSON Value
val =
    PostSourcesRequestBodyFlow' -> Parser PostSourcesRequestBodyFlow'
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
"code_verification" -> PostSourcesRequestBodyFlow'
PostSourcesRequestBodyFlow'EnumCodeVerification
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> PostSourcesRequestBodyFlow'
PostSourcesRequestBodyFlow'EnumNone
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"receiver" -> PostSourcesRequestBodyFlow'
PostSourcesRequestBodyFlow'EnumReceiver
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"redirect" -> PostSourcesRequestBodyFlow'
PostSourcesRequestBodyFlow'EnumRedirect
            | Bool
GHC.Base.otherwise -> Value -> PostSourcesRequestBodyFlow'
PostSourcesRequestBodyFlow'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate@ in the specification.
--
-- Information about a mandate possibility attached to a source object (generally for bank debits) as well as its acceptance status.
data PostSourcesRequestBodyMandate' = PostSourcesRequestBodyMandate'
  { -- | acceptance
    PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'
postSourcesRequestBodyMandate'Acceptance :: (GHC.Maybe.Maybe PostSourcesRequestBodyMandate'Acceptance'),
    -- | amount
    PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'Amount'Variants
postSourcesRequestBodyMandate'Amount :: (GHC.Maybe.Maybe PostSourcesRequestBodyMandate'Amount'Variants),
    -- | currency
    PostSourcesRequestBodyMandate' -> Maybe Text
postSourcesRequestBodyMandate'Currency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | interval
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'Interval'
postSourcesRequestBodyMandate'Interval :: (GHC.Maybe.Maybe PostSourcesRequestBodyMandate'Interval'),
    -- | notification_method
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
postSourcesRequestBodyMandate'NotificationMethod :: (GHC.Maybe.Maybe PostSourcesRequestBodyMandate'NotificationMethod')
  }
  deriving
    ( Int -> PostSourcesRequestBodyMandate' -> ShowS
[PostSourcesRequestBodyMandate'] -> ShowS
PostSourcesRequestBodyMandate' -> String
(Int -> PostSourcesRequestBodyMandate' -> ShowS)
-> (PostSourcesRequestBodyMandate' -> String)
-> ([PostSourcesRequestBodyMandate'] -> ShowS)
-> Show PostSourcesRequestBodyMandate'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyMandate'] -> ShowS
$cshowList :: [PostSourcesRequestBodyMandate'] -> ShowS
show :: PostSourcesRequestBodyMandate' -> String
$cshow :: PostSourcesRequestBodyMandate' -> String
showsPrec :: Int -> PostSourcesRequestBodyMandate' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyMandate' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodyMandate'
-> PostSourcesRequestBodyMandate' -> Bool
(PostSourcesRequestBodyMandate'
 -> PostSourcesRequestBodyMandate' -> Bool)
-> (PostSourcesRequestBodyMandate'
    -> PostSourcesRequestBodyMandate' -> Bool)
-> Eq PostSourcesRequestBodyMandate'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyMandate'
-> PostSourcesRequestBodyMandate' -> Bool
$c/= :: PostSourcesRequestBodyMandate'
-> PostSourcesRequestBodyMandate' -> Bool
== :: PostSourcesRequestBodyMandate'
-> PostSourcesRequestBodyMandate' -> Bool
$c== :: PostSourcesRequestBodyMandate'
-> PostSourcesRequestBodyMandate' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyMandate' where
  toJSON :: PostSourcesRequestBodyMandate' -> Value
toJSON PostSourcesRequestBodyMandate'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"acceptance" Text -> Maybe PostSourcesRequestBodyMandate'Acceptance' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'
postSourcesRequestBodyMandate'Acceptance PostSourcesRequestBodyMandate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount" Text -> Maybe PostSourcesRequestBodyMandate'Amount'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'Amount'Variants
postSourcesRequestBodyMandate'Amount PostSourcesRequestBodyMandate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate' -> Maybe Text
postSourcesRequestBodyMandate'Currency PostSourcesRequestBodyMandate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"interval" Text -> Maybe PostSourcesRequestBodyMandate'Interval' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'Interval'
postSourcesRequestBodyMandate'Interval PostSourcesRequestBodyMandate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"notification_method" Text
-> Maybe PostSourcesRequestBodyMandate'NotificationMethod' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
postSourcesRequestBodyMandate'NotificationMethod PostSourcesRequestBodyMandate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSourcesRequestBodyMandate' -> Encoding
toEncoding PostSourcesRequestBodyMandate'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"acceptance" Text -> Maybe PostSourcesRequestBodyMandate'Acceptance' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'
postSourcesRequestBodyMandate'Acceptance PostSourcesRequestBodyMandate'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount" Text
-> Maybe PostSourcesRequestBodyMandate'Amount'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'Amount'Variants
postSourcesRequestBodyMandate'Amount PostSourcesRequestBodyMandate'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate' -> Maybe Text
postSourcesRequestBodyMandate'Currency PostSourcesRequestBodyMandate'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"interval" Text -> Maybe PostSourcesRequestBodyMandate'Interval' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'Interval'
postSourcesRequestBodyMandate'Interval PostSourcesRequestBodyMandate'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"notification_method" Text
-> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'
-> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
postSourcesRequestBodyMandate'NotificationMethod PostSourcesRequestBodyMandate'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodyMandate' where
  parseJSON :: Value -> Parser PostSourcesRequestBodyMandate'
parseJSON = String
-> (Object -> Parser PostSourcesRequestBodyMandate')
-> Value
-> Parser PostSourcesRequestBodyMandate'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSourcesRequestBodyMandate'" (\Object
obj -> (((((Maybe PostSourcesRequestBodyMandate'Acceptance'
 -> Maybe PostSourcesRequestBodyMandate'Amount'Variants
 -> Maybe Text
 -> Maybe PostSourcesRequestBodyMandate'Interval'
 -> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
 -> PostSourcesRequestBodyMandate')
-> Parser
     (Maybe PostSourcesRequestBodyMandate'Acceptance'
      -> Maybe PostSourcesRequestBodyMandate'Amount'Variants
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyMandate'Interval'
      -> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
      -> PostSourcesRequestBodyMandate')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Amount'Variants
-> Maybe Text
-> Maybe PostSourcesRequestBodyMandate'Interval'
-> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
-> PostSourcesRequestBodyMandate'
PostSourcesRequestBodyMandate' Parser
  (Maybe PostSourcesRequestBodyMandate'Acceptance'
   -> Maybe PostSourcesRequestBodyMandate'Amount'Variants
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyMandate'Interval'
   -> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
   -> PostSourcesRequestBodyMandate')
-> Parser (Maybe PostSourcesRequestBodyMandate'Acceptance')
-> Parser
     (Maybe PostSourcesRequestBodyMandate'Amount'Variants
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyMandate'Interval'
      -> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
      -> PostSourcesRequestBodyMandate')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe PostSourcesRequestBodyMandate'Acceptance')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"acceptance")) Parser
  (Maybe PostSourcesRequestBodyMandate'Amount'Variants
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyMandate'Interval'
   -> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
   -> PostSourcesRequestBodyMandate')
-> Parser (Maybe PostSourcesRequestBodyMandate'Amount'Variants)
-> Parser
     (Maybe Text
      -> Maybe PostSourcesRequestBodyMandate'Interval'
      -> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
      -> PostSourcesRequestBodyMandate')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostSourcesRequestBodyMandate'Amount'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount")) Parser
  (Maybe Text
   -> Maybe PostSourcesRequestBodyMandate'Interval'
   -> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
   -> PostSourcesRequestBodyMandate')
-> Parser (Maybe Text)
-> Parser
     (Maybe PostSourcesRequestBodyMandate'Interval'
      -> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
      -> PostSourcesRequestBodyMandate')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"currency")) Parser
  (Maybe PostSourcesRequestBodyMandate'Interval'
   -> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
   -> PostSourcesRequestBodyMandate')
-> Parser (Maybe PostSourcesRequestBodyMandate'Interval')
-> Parser
     (Maybe PostSourcesRequestBodyMandate'NotificationMethod'
      -> PostSourcesRequestBodyMandate')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe PostSourcesRequestBodyMandate'Interval')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"interval")) Parser
  (Maybe PostSourcesRequestBodyMandate'NotificationMethod'
   -> PostSourcesRequestBodyMandate')
-> Parser (Maybe PostSourcesRequestBodyMandate'NotificationMethod')
-> Parser PostSourcesRequestBodyMandate'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostSourcesRequestBodyMandate'NotificationMethod')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"notification_method"))

-- | Create a new 'PostSourcesRequestBodyMandate'' with all required fields.
mkPostSourcesRequestBodyMandate' :: PostSourcesRequestBodyMandate'
mkPostSourcesRequestBodyMandate' :: PostSourcesRequestBodyMandate'
mkPostSourcesRequestBodyMandate' =
  PostSourcesRequestBodyMandate' :: Maybe PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Amount'Variants
-> Maybe Text
-> Maybe PostSourcesRequestBodyMandate'Interval'
-> Maybe PostSourcesRequestBodyMandate'NotificationMethod'
-> PostSourcesRequestBodyMandate'
PostSourcesRequestBodyMandate'
    { postSourcesRequestBodyMandate'Acceptance :: Maybe PostSourcesRequestBodyMandate'Acceptance'
postSourcesRequestBodyMandate'Acceptance = Maybe PostSourcesRequestBodyMandate'Acceptance'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'Amount :: Maybe PostSourcesRequestBodyMandate'Amount'Variants
postSourcesRequestBodyMandate'Amount = Maybe PostSourcesRequestBodyMandate'Amount'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'Currency :: Maybe Text
postSourcesRequestBodyMandate'Currency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'Interval :: Maybe PostSourcesRequestBodyMandate'Interval'
postSourcesRequestBodyMandate'Interval = Maybe PostSourcesRequestBodyMandate'Interval'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'NotificationMethod :: Maybe PostSourcesRequestBodyMandate'NotificationMethod'
postSourcesRequestBodyMandate'NotificationMethod = Maybe PostSourcesRequestBodyMandate'NotificationMethod'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate.properties.acceptance@ in the specification.
data PostSourcesRequestBodyMandate'Acceptance' = PostSourcesRequestBodyMandate'Acceptance'
  { -- | date
    PostSourcesRequestBodyMandate'Acceptance' -> Maybe Int
postSourcesRequestBodyMandate'Acceptance'Date :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | ip
    PostSourcesRequestBodyMandate'Acceptance' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'Ip :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | offline
    PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
postSourcesRequestBodyMandate'Acceptance'Offline :: (GHC.Maybe.Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'),
    -- | online
    PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
postSourcesRequestBodyMandate'Acceptance'Online :: (GHC.Maybe.Maybe PostSourcesRequestBodyMandate'Acceptance'Online'),
    -- | status
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyMandate'Acceptance'
-> PostSourcesRequestBodyMandate'Acceptance'Status'
postSourcesRequestBodyMandate'Acceptance'Status :: PostSourcesRequestBodyMandate'Acceptance'Status',
    -- | type
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
postSourcesRequestBodyMandate'Acceptance'Type :: (GHC.Maybe.Maybe PostSourcesRequestBodyMandate'Acceptance'Type'),
    -- | user_agent
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyMandate'Acceptance' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'UserAgent :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PostSourcesRequestBodyMandate'Acceptance' -> ShowS
[PostSourcesRequestBodyMandate'Acceptance'] -> ShowS
PostSourcesRequestBodyMandate'Acceptance' -> String
(Int -> PostSourcesRequestBodyMandate'Acceptance' -> ShowS)
-> (PostSourcesRequestBodyMandate'Acceptance' -> String)
-> ([PostSourcesRequestBodyMandate'Acceptance'] -> ShowS)
-> Show PostSourcesRequestBodyMandate'Acceptance'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyMandate'Acceptance'] -> ShowS
$cshowList :: [PostSourcesRequestBodyMandate'Acceptance'] -> ShowS
show :: PostSourcesRequestBodyMandate'Acceptance' -> String
$cshow :: PostSourcesRequestBodyMandate'Acceptance' -> String
showsPrec :: Int -> PostSourcesRequestBodyMandate'Acceptance' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyMandate'Acceptance' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodyMandate'Acceptance'
-> PostSourcesRequestBodyMandate'Acceptance' -> Bool
(PostSourcesRequestBodyMandate'Acceptance'
 -> PostSourcesRequestBodyMandate'Acceptance' -> Bool)
-> (PostSourcesRequestBodyMandate'Acceptance'
    -> PostSourcesRequestBodyMandate'Acceptance' -> Bool)
-> Eq PostSourcesRequestBodyMandate'Acceptance'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyMandate'Acceptance'
-> PostSourcesRequestBodyMandate'Acceptance' -> Bool
$c/= :: PostSourcesRequestBodyMandate'Acceptance'
-> PostSourcesRequestBodyMandate'Acceptance' -> Bool
== :: PostSourcesRequestBodyMandate'Acceptance'
-> PostSourcesRequestBodyMandate'Acceptance' -> Bool
$c== :: PostSourcesRequestBodyMandate'Acceptance'
-> PostSourcesRequestBodyMandate'Acceptance' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyMandate'Acceptance' where
  toJSON :: PostSourcesRequestBodyMandate'Acceptance' -> Value
toJSON PostSourcesRequestBodyMandate'Acceptance'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"date" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance' -> Maybe Int
postSourcesRequestBodyMandate'Acceptance'Date PostSourcesRequestBodyMandate'Acceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ip" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'Ip PostSourcesRequestBodyMandate'Acceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"offline" Text
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
postSourcesRequestBodyMandate'Acceptance'Offline PostSourcesRequestBodyMandate'Acceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"online" Text
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Online' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
postSourcesRequestBodyMandate'Acceptance'Online PostSourcesRequestBodyMandate'Acceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"status" Text -> PostSourcesRequestBodyMandate'Acceptance'Status' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'
-> PostSourcesRequestBodyMandate'Acceptance'Status'
postSourcesRequestBodyMandate'Acceptance'Status PostSourcesRequestBodyMandate'Acceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Type' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
postSourcesRequestBodyMandate'Acceptance'Type PostSourcesRequestBodyMandate'Acceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"user_agent" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'UserAgent PostSourcesRequestBodyMandate'Acceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSourcesRequestBodyMandate'Acceptance' -> Encoding
toEncoding PostSourcesRequestBodyMandate'Acceptance'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"date" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance' -> Maybe Int
postSourcesRequestBodyMandate'Acceptance'Date PostSourcesRequestBodyMandate'Acceptance'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ip" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'Ip PostSourcesRequestBodyMandate'Acceptance'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"offline" Text
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
postSourcesRequestBodyMandate'Acceptance'Offline PostSourcesRequestBodyMandate'Acceptance'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"online" Text
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Online' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
postSourcesRequestBodyMandate'Acceptance'Online PostSourcesRequestBodyMandate'Acceptance'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"status" Text -> PostSourcesRequestBodyMandate'Acceptance'Status' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'
-> PostSourcesRequestBodyMandate'Acceptance'Status'
postSourcesRequestBodyMandate'Acceptance'Status PostSourcesRequestBodyMandate'Acceptance'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"type" Text
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Type' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
postSourcesRequestBodyMandate'Acceptance'Type PostSourcesRequestBodyMandate'Acceptance'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"user_agent" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'UserAgent PostSourcesRequestBodyMandate'Acceptance'
obj)))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodyMandate'Acceptance' where
  parseJSON :: Value -> Parser PostSourcesRequestBodyMandate'Acceptance'
parseJSON = String
-> (Object -> Parser PostSourcesRequestBodyMandate'Acceptance')
-> Value
-> Parser PostSourcesRequestBodyMandate'Acceptance'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSourcesRequestBodyMandate'Acceptance'" (\Object
obj -> (((((((Maybe Int
 -> Maybe Text
 -> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
 -> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
 -> PostSourcesRequestBodyMandate'Acceptance'Status'
 -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
 -> Maybe Text
 -> PostSourcesRequestBodyMandate'Acceptance')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
      -> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
      -> PostSourcesRequestBodyMandate'Acceptance'Status'
      -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
      -> Maybe Text
      -> PostSourcesRequestBodyMandate'Acceptance')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Text
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
-> PostSourcesRequestBodyMandate'Acceptance'Status'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
-> Maybe Text
-> PostSourcesRequestBodyMandate'Acceptance'
PostSourcesRequestBodyMandate'Acceptance' Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
   -> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
   -> PostSourcesRequestBodyMandate'Acceptance'Status'
   -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
   -> Maybe Text
   -> PostSourcesRequestBodyMandate'Acceptance')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
      -> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
      -> PostSourcesRequestBodyMandate'Acceptance'Status'
      -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
      -> Maybe Text
      -> PostSourcesRequestBodyMandate'Acceptance')
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
"date")) Parser
  (Maybe Text
   -> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
   -> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
   -> PostSourcesRequestBodyMandate'Acceptance'Status'
   -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
   -> Maybe Text
   -> PostSourcesRequestBodyMandate'Acceptance')
-> Parser (Maybe Text)
-> Parser
     (Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
      -> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
      -> PostSourcesRequestBodyMandate'Acceptance'Status'
      -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
      -> Maybe Text
      -> PostSourcesRequestBodyMandate'Acceptance')
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
"ip")) Parser
  (Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
   -> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
   -> PostSourcesRequestBodyMandate'Acceptance'Status'
   -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
   -> Maybe Text
   -> PostSourcesRequestBodyMandate'Acceptance')
-> Parser (Maybe PostSourcesRequestBodyMandate'Acceptance'Offline')
-> Parser
     (Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
      -> PostSourcesRequestBodyMandate'Acceptance'Status'
      -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
      -> Maybe Text
      -> PostSourcesRequestBodyMandate'Acceptance')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostSourcesRequestBodyMandate'Acceptance'Offline')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"offline")) Parser
  (Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
   -> PostSourcesRequestBodyMandate'Acceptance'Status'
   -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
   -> Maybe Text
   -> PostSourcesRequestBodyMandate'Acceptance')
-> Parser (Maybe PostSourcesRequestBodyMandate'Acceptance'Online')
-> Parser
     (PostSourcesRequestBodyMandate'Acceptance'Status'
      -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
      -> Maybe Text
      -> PostSourcesRequestBodyMandate'Acceptance')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostSourcesRequestBodyMandate'Acceptance'Online')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"online")) Parser
  (PostSourcesRequestBodyMandate'Acceptance'Status'
   -> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
   -> Maybe Text
   -> PostSourcesRequestBodyMandate'Acceptance')
-> Parser PostSourcesRequestBodyMandate'Acceptance'Status'
-> Parser
     (Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
      -> Maybe Text -> PostSourcesRequestBodyMandate'Acceptance')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser PostSourcesRequestBodyMandate'Acceptance'Status'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"status")) Parser
  (Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
   -> Maybe Text -> PostSourcesRequestBodyMandate'Acceptance')
-> Parser (Maybe PostSourcesRequestBodyMandate'Acceptance'Type')
-> Parser (Maybe Text -> PostSourcesRequestBodyMandate'Acceptance')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostSourcesRequestBodyMandate'Acceptance'Type')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"type")) Parser (Maybe Text -> PostSourcesRequestBodyMandate'Acceptance')
-> Parser (Maybe Text)
-> Parser PostSourcesRequestBodyMandate'Acceptance'
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
"user_agent"))

-- | Create a new 'PostSourcesRequestBodyMandate'Acceptance'' with all required fields.
mkPostSourcesRequestBodyMandate'Acceptance' ::
  -- | 'postSourcesRequestBodyMandate'Acceptance'Status'
  PostSourcesRequestBodyMandate'Acceptance'Status' ->
  PostSourcesRequestBodyMandate'Acceptance'
mkPostSourcesRequestBodyMandate'Acceptance' :: PostSourcesRequestBodyMandate'Acceptance'Status'
-> PostSourcesRequestBodyMandate'Acceptance'
mkPostSourcesRequestBodyMandate'Acceptance' PostSourcesRequestBodyMandate'Acceptance'Status'
postSourcesRequestBodyMandate'Acceptance'Status =
  PostSourcesRequestBodyMandate'Acceptance' :: Maybe Int
-> Maybe Text
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
-> PostSourcesRequestBodyMandate'Acceptance'Status'
-> Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
-> Maybe Text
-> PostSourcesRequestBodyMandate'Acceptance'
PostSourcesRequestBodyMandate'Acceptance'
    { postSourcesRequestBodyMandate'Acceptance'Date :: Maybe Int
postSourcesRequestBodyMandate'Acceptance'Date = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'Acceptance'Ip :: Maybe Text
postSourcesRequestBodyMandate'Acceptance'Ip = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'Acceptance'Offline :: Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
postSourcesRequestBodyMandate'Acceptance'Offline = Maybe PostSourcesRequestBodyMandate'Acceptance'Offline'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'Acceptance'Online :: Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
postSourcesRequestBodyMandate'Acceptance'Online = Maybe PostSourcesRequestBodyMandate'Acceptance'Online'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'Acceptance'Status :: PostSourcesRequestBodyMandate'Acceptance'Status'
postSourcesRequestBodyMandate'Acceptance'Status = PostSourcesRequestBodyMandate'Acceptance'Status'
postSourcesRequestBodyMandate'Acceptance'Status,
      postSourcesRequestBodyMandate'Acceptance'Type :: Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
postSourcesRequestBodyMandate'Acceptance'Type = Maybe PostSourcesRequestBodyMandate'Acceptance'Type'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'Acceptance'UserAgent :: Maybe Text
postSourcesRequestBodyMandate'Acceptance'UserAgent = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate.properties.acceptance.properties.offline@ in the specification.
data PostSourcesRequestBodyMandate'Acceptance'Offline' = PostSourcesRequestBodyMandate'Acceptance'Offline'
  { -- | contact_email
    PostSourcesRequestBodyMandate'Acceptance'Offline' -> Text
postSourcesRequestBodyMandate'Acceptance'Offline'ContactEmail :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> PostSourcesRequestBodyMandate'Acceptance'Offline' -> ShowS
[PostSourcesRequestBodyMandate'Acceptance'Offline'] -> ShowS
PostSourcesRequestBodyMandate'Acceptance'Offline' -> String
(Int -> PostSourcesRequestBodyMandate'Acceptance'Offline' -> ShowS)
-> (PostSourcesRequestBodyMandate'Acceptance'Offline' -> String)
-> ([PostSourcesRequestBodyMandate'Acceptance'Offline'] -> ShowS)
-> Show PostSourcesRequestBodyMandate'Acceptance'Offline'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyMandate'Acceptance'Offline'] -> ShowS
$cshowList :: [PostSourcesRequestBodyMandate'Acceptance'Offline'] -> ShowS
show :: PostSourcesRequestBodyMandate'Acceptance'Offline' -> String
$cshow :: PostSourcesRequestBodyMandate'Acceptance'Offline' -> String
showsPrec :: Int -> PostSourcesRequestBodyMandate'Acceptance'Offline' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyMandate'Acceptance'Offline' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodyMandate'Acceptance'Offline'
-> PostSourcesRequestBodyMandate'Acceptance'Offline' -> Bool
(PostSourcesRequestBodyMandate'Acceptance'Offline'
 -> PostSourcesRequestBodyMandate'Acceptance'Offline' -> Bool)
-> (PostSourcesRequestBodyMandate'Acceptance'Offline'
    -> PostSourcesRequestBodyMandate'Acceptance'Offline' -> Bool)
-> Eq PostSourcesRequestBodyMandate'Acceptance'Offline'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyMandate'Acceptance'Offline'
-> PostSourcesRequestBodyMandate'Acceptance'Offline' -> Bool
$c/= :: PostSourcesRequestBodyMandate'Acceptance'Offline'
-> PostSourcesRequestBodyMandate'Acceptance'Offline' -> Bool
== :: PostSourcesRequestBodyMandate'Acceptance'Offline'
-> PostSourcesRequestBodyMandate'Acceptance'Offline' -> Bool
$c== :: PostSourcesRequestBodyMandate'Acceptance'Offline'
-> PostSourcesRequestBodyMandate'Acceptance'Offline' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyMandate'Acceptance'Offline' where
  toJSON :: PostSourcesRequestBodyMandate'Acceptance'Offline' -> Value
toJSON PostSourcesRequestBodyMandate'Acceptance'Offline'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"contact_email" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'Offline' -> Text
postSourcesRequestBodyMandate'Acceptance'Offline'ContactEmail PostSourcesRequestBodyMandate'Acceptance'Offline'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSourcesRequestBodyMandate'Acceptance'Offline' -> Encoding
toEncoding PostSourcesRequestBodyMandate'Acceptance'Offline'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"contact_email" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'Offline' -> Text
postSourcesRequestBodyMandate'Acceptance'Offline'ContactEmail PostSourcesRequestBodyMandate'Acceptance'Offline'
obj)

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

-- | Create a new 'PostSourcesRequestBodyMandate'Acceptance'Offline'' with all required fields.
mkPostSourcesRequestBodyMandate'Acceptance'Offline' ::
  -- | 'postSourcesRequestBodyMandate'Acceptance'Offline'ContactEmail'
  Data.Text.Internal.Text ->
  PostSourcesRequestBodyMandate'Acceptance'Offline'
mkPostSourcesRequestBodyMandate'Acceptance'Offline' :: Text -> PostSourcesRequestBodyMandate'Acceptance'Offline'
mkPostSourcesRequestBodyMandate'Acceptance'Offline' Text
postSourcesRequestBodyMandate'Acceptance'Offline'ContactEmail = PostSourcesRequestBodyMandate'Acceptance'Offline' :: Text -> PostSourcesRequestBodyMandate'Acceptance'Offline'
PostSourcesRequestBodyMandate'Acceptance'Offline' {postSourcesRequestBodyMandate'Acceptance'Offline'ContactEmail :: Text
postSourcesRequestBodyMandate'Acceptance'Offline'ContactEmail = Text
postSourcesRequestBodyMandate'Acceptance'Offline'ContactEmail}

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate.properties.acceptance.properties.online@ in the specification.
data PostSourcesRequestBodyMandate'Acceptance'Online' = PostSourcesRequestBodyMandate'Acceptance'Online'
  { -- | date
    PostSourcesRequestBodyMandate'Acceptance'Online' -> Maybe Int
postSourcesRequestBodyMandate'Acceptance'Online'Date :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | ip
    PostSourcesRequestBodyMandate'Acceptance'Online' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'Online'Ip :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | user_agent
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyMandate'Acceptance'Online' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'Online'UserAgent :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PostSourcesRequestBodyMandate'Acceptance'Online' -> ShowS
[PostSourcesRequestBodyMandate'Acceptance'Online'] -> ShowS
PostSourcesRequestBodyMandate'Acceptance'Online' -> String
(Int -> PostSourcesRequestBodyMandate'Acceptance'Online' -> ShowS)
-> (PostSourcesRequestBodyMandate'Acceptance'Online' -> String)
-> ([PostSourcesRequestBodyMandate'Acceptance'Online'] -> ShowS)
-> Show PostSourcesRequestBodyMandate'Acceptance'Online'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyMandate'Acceptance'Online'] -> ShowS
$cshowList :: [PostSourcesRequestBodyMandate'Acceptance'Online'] -> ShowS
show :: PostSourcesRequestBodyMandate'Acceptance'Online' -> String
$cshow :: PostSourcesRequestBodyMandate'Acceptance'Online' -> String
showsPrec :: Int -> PostSourcesRequestBodyMandate'Acceptance'Online' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyMandate'Acceptance'Online' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodyMandate'Acceptance'Online'
-> PostSourcesRequestBodyMandate'Acceptance'Online' -> Bool
(PostSourcesRequestBodyMandate'Acceptance'Online'
 -> PostSourcesRequestBodyMandate'Acceptance'Online' -> Bool)
-> (PostSourcesRequestBodyMandate'Acceptance'Online'
    -> PostSourcesRequestBodyMandate'Acceptance'Online' -> Bool)
-> Eq PostSourcesRequestBodyMandate'Acceptance'Online'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyMandate'Acceptance'Online'
-> PostSourcesRequestBodyMandate'Acceptance'Online' -> Bool
$c/= :: PostSourcesRequestBodyMandate'Acceptance'Online'
-> PostSourcesRequestBodyMandate'Acceptance'Online' -> Bool
== :: PostSourcesRequestBodyMandate'Acceptance'Online'
-> PostSourcesRequestBodyMandate'Acceptance'Online' -> Bool
$c== :: PostSourcesRequestBodyMandate'Acceptance'Online'
-> PostSourcesRequestBodyMandate'Acceptance'Online' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyMandate'Acceptance'Online' where
  toJSON :: PostSourcesRequestBodyMandate'Acceptance'Online' -> Value
toJSON PostSourcesRequestBodyMandate'Acceptance'Online'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"date" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'Online' -> Maybe Int
postSourcesRequestBodyMandate'Acceptance'Online'Date PostSourcesRequestBodyMandate'Acceptance'Online'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ip" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'Online' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'Online'Ip PostSourcesRequestBodyMandate'Acceptance'Online'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"user_agent" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'Online' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'Online'UserAgent PostSourcesRequestBodyMandate'Acceptance'Online'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSourcesRequestBodyMandate'Acceptance'Online' -> Encoding
toEncoding PostSourcesRequestBodyMandate'Acceptance'Online'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"date" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'Online' -> Maybe Int
postSourcesRequestBodyMandate'Acceptance'Online'Date PostSourcesRequestBodyMandate'Acceptance'Online'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ip" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'Online' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'Online'Ip PostSourcesRequestBodyMandate'Acceptance'Online'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"user_agent" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyMandate'Acceptance'Online' -> Maybe Text
postSourcesRequestBodyMandate'Acceptance'Online'UserAgent PostSourcesRequestBodyMandate'Acceptance'Online'
obj)))

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodyMandate'Acceptance'Online' where
  parseJSON :: Value -> Parser PostSourcesRequestBodyMandate'Acceptance'Online'
parseJSON = String
-> (Object
    -> Parser PostSourcesRequestBodyMandate'Acceptance'Online')
-> Value
-> Parser PostSourcesRequestBodyMandate'Acceptance'Online'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSourcesRequestBodyMandate'Acceptance'Online'" (\Object
obj -> (((Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> PostSourcesRequestBodyMandate'Acceptance'Online')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> PostSourcesRequestBodyMandate'Acceptance'Online')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Text
-> Maybe Text
-> PostSourcesRequestBodyMandate'Acceptance'Online'
PostSourcesRequestBodyMandate'Acceptance'Online' Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> PostSourcesRequestBodyMandate'Acceptance'Online')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text -> PostSourcesRequestBodyMandate'Acceptance'Online')
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
"date")) Parser
  (Maybe Text
   -> Maybe Text -> PostSourcesRequestBodyMandate'Acceptance'Online')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> PostSourcesRequestBodyMandate'Acceptance'Online')
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
"ip")) Parser
  (Maybe Text -> PostSourcesRequestBodyMandate'Acceptance'Online')
-> Parser (Maybe Text)
-> Parser PostSourcesRequestBodyMandate'Acceptance'Online'
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
"user_agent"))

-- | Create a new 'PostSourcesRequestBodyMandate'Acceptance'Online'' with all required fields.
mkPostSourcesRequestBodyMandate'Acceptance'Online' :: PostSourcesRequestBodyMandate'Acceptance'Online'
mkPostSourcesRequestBodyMandate'Acceptance'Online' :: PostSourcesRequestBodyMandate'Acceptance'Online'
mkPostSourcesRequestBodyMandate'Acceptance'Online' =
  PostSourcesRequestBodyMandate'Acceptance'Online' :: Maybe Int
-> Maybe Text
-> Maybe Text
-> PostSourcesRequestBodyMandate'Acceptance'Online'
PostSourcesRequestBodyMandate'Acceptance'Online'
    { postSourcesRequestBodyMandate'Acceptance'Online'Date :: Maybe Int
postSourcesRequestBodyMandate'Acceptance'Online'Date = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'Acceptance'Online'Ip :: Maybe Text
postSourcesRequestBodyMandate'Acceptance'Online'Ip = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyMandate'Acceptance'Online'UserAgent :: Maybe Text
postSourcesRequestBodyMandate'Acceptance'Online'UserAgent = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate.properties.acceptance.properties.status@ in the specification.
data PostSourcesRequestBodyMandate'Acceptance'Status'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSourcesRequestBodyMandate'Acceptance'Status'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.
    PostSourcesRequestBodyMandate'Acceptance'Status'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"accepted"@
    PostSourcesRequestBodyMandate'Acceptance'Status'EnumAccepted
  | -- | Represents the JSON value @"pending"@
    PostSourcesRequestBodyMandate'Acceptance'Status'EnumPending
  | -- | Represents the JSON value @"refused"@
    PostSourcesRequestBodyMandate'Acceptance'Status'EnumRefused
  | -- | Represents the JSON value @"revoked"@
    PostSourcesRequestBodyMandate'Acceptance'Status'EnumRevoked
  deriving (Int -> PostSourcesRequestBodyMandate'Acceptance'Status' -> ShowS
[PostSourcesRequestBodyMandate'Acceptance'Status'] -> ShowS
PostSourcesRequestBodyMandate'Acceptance'Status' -> String
(Int -> PostSourcesRequestBodyMandate'Acceptance'Status' -> ShowS)
-> (PostSourcesRequestBodyMandate'Acceptance'Status' -> String)
-> ([PostSourcesRequestBodyMandate'Acceptance'Status'] -> ShowS)
-> Show PostSourcesRequestBodyMandate'Acceptance'Status'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyMandate'Acceptance'Status'] -> ShowS
$cshowList :: [PostSourcesRequestBodyMandate'Acceptance'Status'] -> ShowS
show :: PostSourcesRequestBodyMandate'Acceptance'Status' -> String
$cshow :: PostSourcesRequestBodyMandate'Acceptance'Status' -> String
showsPrec :: Int -> PostSourcesRequestBodyMandate'Acceptance'Status' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyMandate'Acceptance'Status' -> ShowS
GHC.Show.Show, PostSourcesRequestBodyMandate'Acceptance'Status'
-> PostSourcesRequestBodyMandate'Acceptance'Status' -> Bool
(PostSourcesRequestBodyMandate'Acceptance'Status'
 -> PostSourcesRequestBodyMandate'Acceptance'Status' -> Bool)
-> (PostSourcesRequestBodyMandate'Acceptance'Status'
    -> PostSourcesRequestBodyMandate'Acceptance'Status' -> Bool)
-> Eq PostSourcesRequestBodyMandate'Acceptance'Status'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyMandate'Acceptance'Status'
-> PostSourcesRequestBodyMandate'Acceptance'Status' -> Bool
$c/= :: PostSourcesRequestBodyMandate'Acceptance'Status'
-> PostSourcesRequestBodyMandate'Acceptance'Status' -> Bool
== :: PostSourcesRequestBodyMandate'Acceptance'Status'
-> PostSourcesRequestBodyMandate'Acceptance'Status' -> Bool
$c== :: PostSourcesRequestBodyMandate'Acceptance'Status'
-> PostSourcesRequestBodyMandate'Acceptance'Status' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyMandate'Acceptance'Status' where
  toJSON :: PostSourcesRequestBodyMandate'Acceptance'Status' -> Value
toJSON (PostSourcesRequestBodyMandate'Acceptance'Status'Other Value
val) = Value
val
  toJSON (PostSourcesRequestBodyMandate'Acceptance'Status'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSourcesRequestBodyMandate'Acceptance'Status'
PostSourcesRequestBodyMandate'Acceptance'Status'EnumAccepted) = Value
"accepted"
  toJSON (PostSourcesRequestBodyMandate'Acceptance'Status'
PostSourcesRequestBodyMandate'Acceptance'Status'EnumPending) = Value
"pending"
  toJSON (PostSourcesRequestBodyMandate'Acceptance'Status'
PostSourcesRequestBodyMandate'Acceptance'Status'EnumRefused) = Value
"refused"
  toJSON (PostSourcesRequestBodyMandate'Acceptance'Status'
PostSourcesRequestBodyMandate'Acceptance'Status'EnumRevoked) = Value
"revoked"

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodyMandate'Acceptance'Status' where
  parseJSON :: Value -> Parser PostSourcesRequestBodyMandate'Acceptance'Status'
parseJSON Value
val =
    PostSourcesRequestBodyMandate'Acceptance'Status'
-> Parser PostSourcesRequestBodyMandate'Acceptance'Status'
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
"accepted" -> PostSourcesRequestBodyMandate'Acceptance'Status'
PostSourcesRequestBodyMandate'Acceptance'Status'EnumAccepted
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pending" -> PostSourcesRequestBodyMandate'Acceptance'Status'
PostSourcesRequestBodyMandate'Acceptance'Status'EnumPending
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"refused" -> PostSourcesRequestBodyMandate'Acceptance'Status'
PostSourcesRequestBodyMandate'Acceptance'Status'EnumRefused
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"revoked" -> PostSourcesRequestBodyMandate'Acceptance'Status'
PostSourcesRequestBodyMandate'Acceptance'Status'EnumRevoked
            | Bool
GHC.Base.otherwise -> Value -> PostSourcesRequestBodyMandate'Acceptance'Status'
PostSourcesRequestBodyMandate'Acceptance'Status'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate.properties.acceptance.properties.type@ in the specification.
data PostSourcesRequestBodyMandate'Acceptance'Type'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSourcesRequestBodyMandate'Acceptance'Type'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSourcesRequestBodyMandate'Acceptance'Type'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"offline"@
    PostSourcesRequestBodyMandate'Acceptance'Type'EnumOffline
  | -- | Represents the JSON value @"online"@
    PostSourcesRequestBodyMandate'Acceptance'Type'EnumOnline
  deriving (Int -> PostSourcesRequestBodyMandate'Acceptance'Type' -> ShowS
[PostSourcesRequestBodyMandate'Acceptance'Type'] -> ShowS
PostSourcesRequestBodyMandate'Acceptance'Type' -> String
(Int -> PostSourcesRequestBodyMandate'Acceptance'Type' -> ShowS)
-> (PostSourcesRequestBodyMandate'Acceptance'Type' -> String)
-> ([PostSourcesRequestBodyMandate'Acceptance'Type'] -> ShowS)
-> Show PostSourcesRequestBodyMandate'Acceptance'Type'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyMandate'Acceptance'Type'] -> ShowS
$cshowList :: [PostSourcesRequestBodyMandate'Acceptance'Type'] -> ShowS
show :: PostSourcesRequestBodyMandate'Acceptance'Type' -> String
$cshow :: PostSourcesRequestBodyMandate'Acceptance'Type' -> String
showsPrec :: Int -> PostSourcesRequestBodyMandate'Acceptance'Type' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyMandate'Acceptance'Type' -> ShowS
GHC.Show.Show, PostSourcesRequestBodyMandate'Acceptance'Type'
-> PostSourcesRequestBodyMandate'Acceptance'Type' -> Bool
(PostSourcesRequestBodyMandate'Acceptance'Type'
 -> PostSourcesRequestBodyMandate'Acceptance'Type' -> Bool)
-> (PostSourcesRequestBodyMandate'Acceptance'Type'
    -> PostSourcesRequestBodyMandate'Acceptance'Type' -> Bool)
-> Eq PostSourcesRequestBodyMandate'Acceptance'Type'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyMandate'Acceptance'Type'
-> PostSourcesRequestBodyMandate'Acceptance'Type' -> Bool
$c/= :: PostSourcesRequestBodyMandate'Acceptance'Type'
-> PostSourcesRequestBodyMandate'Acceptance'Type' -> Bool
== :: PostSourcesRequestBodyMandate'Acceptance'Type'
-> PostSourcesRequestBodyMandate'Acceptance'Type' -> Bool
$c== :: PostSourcesRequestBodyMandate'Acceptance'Type'
-> PostSourcesRequestBodyMandate'Acceptance'Type' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyMandate'Acceptance'Type' where
  toJSON :: PostSourcesRequestBodyMandate'Acceptance'Type' -> Value
toJSON (PostSourcesRequestBodyMandate'Acceptance'Type'Other Value
val) = Value
val
  toJSON (PostSourcesRequestBodyMandate'Acceptance'Type'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSourcesRequestBodyMandate'Acceptance'Type'
PostSourcesRequestBodyMandate'Acceptance'Type'EnumOffline) = Value
"offline"
  toJSON (PostSourcesRequestBodyMandate'Acceptance'Type'
PostSourcesRequestBodyMandate'Acceptance'Type'EnumOnline) = Value
"online"

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodyMandate'Acceptance'Type' where
  parseJSON :: Value -> Parser PostSourcesRequestBodyMandate'Acceptance'Type'
parseJSON Value
val =
    PostSourcesRequestBodyMandate'Acceptance'Type'
-> Parser PostSourcesRequestBodyMandate'Acceptance'Type'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"offline" -> PostSourcesRequestBodyMandate'Acceptance'Type'
PostSourcesRequestBodyMandate'Acceptance'Type'EnumOffline
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"online" -> PostSourcesRequestBodyMandate'Acceptance'Type'
PostSourcesRequestBodyMandate'Acceptance'Type'EnumOnline
            | Bool
GHC.Base.otherwise -> Value -> PostSourcesRequestBodyMandate'Acceptance'Type'
PostSourcesRequestBodyMandate'Acceptance'Type'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate.properties.amount.anyOf@ in the specification.
data PostSourcesRequestBodyMandate'Amount'Variants
  = -- | Represents the JSON value @""@
    PostSourcesRequestBodyMandate'Amount'EmptyString
  | PostSourcesRequestBodyMandate'Amount'Int GHC.Types.Int
  deriving (Int -> PostSourcesRequestBodyMandate'Amount'Variants -> ShowS
[PostSourcesRequestBodyMandate'Amount'Variants] -> ShowS
PostSourcesRequestBodyMandate'Amount'Variants -> String
(Int -> PostSourcesRequestBodyMandate'Amount'Variants -> ShowS)
-> (PostSourcesRequestBodyMandate'Amount'Variants -> String)
-> ([PostSourcesRequestBodyMandate'Amount'Variants] -> ShowS)
-> Show PostSourcesRequestBodyMandate'Amount'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyMandate'Amount'Variants] -> ShowS
$cshowList :: [PostSourcesRequestBodyMandate'Amount'Variants] -> ShowS
show :: PostSourcesRequestBodyMandate'Amount'Variants -> String
$cshow :: PostSourcesRequestBodyMandate'Amount'Variants -> String
showsPrec :: Int -> PostSourcesRequestBodyMandate'Amount'Variants -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyMandate'Amount'Variants -> ShowS
GHC.Show.Show, PostSourcesRequestBodyMandate'Amount'Variants
-> PostSourcesRequestBodyMandate'Amount'Variants -> Bool
(PostSourcesRequestBodyMandate'Amount'Variants
 -> PostSourcesRequestBodyMandate'Amount'Variants -> Bool)
-> (PostSourcesRequestBodyMandate'Amount'Variants
    -> PostSourcesRequestBodyMandate'Amount'Variants -> Bool)
-> Eq PostSourcesRequestBodyMandate'Amount'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyMandate'Amount'Variants
-> PostSourcesRequestBodyMandate'Amount'Variants -> Bool
$c/= :: PostSourcesRequestBodyMandate'Amount'Variants
-> PostSourcesRequestBodyMandate'Amount'Variants -> Bool
== :: PostSourcesRequestBodyMandate'Amount'Variants
-> PostSourcesRequestBodyMandate'Amount'Variants -> Bool
$c== :: PostSourcesRequestBodyMandate'Amount'Variants
-> PostSourcesRequestBodyMandate'Amount'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate.properties.interval@ in the specification.
data PostSourcesRequestBodyMandate'Interval'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSourcesRequestBodyMandate'Interval'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSourcesRequestBodyMandate'Interval'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"one_time"@
    PostSourcesRequestBodyMandate'Interval'EnumOneTime
  | -- | Represents the JSON value @"scheduled"@
    PostSourcesRequestBodyMandate'Interval'EnumScheduled
  | -- | Represents the JSON value @"variable"@
    PostSourcesRequestBodyMandate'Interval'EnumVariable
  deriving (Int -> PostSourcesRequestBodyMandate'Interval' -> ShowS
[PostSourcesRequestBodyMandate'Interval'] -> ShowS
PostSourcesRequestBodyMandate'Interval' -> String
(Int -> PostSourcesRequestBodyMandate'Interval' -> ShowS)
-> (PostSourcesRequestBodyMandate'Interval' -> String)
-> ([PostSourcesRequestBodyMandate'Interval'] -> ShowS)
-> Show PostSourcesRequestBodyMandate'Interval'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyMandate'Interval'] -> ShowS
$cshowList :: [PostSourcesRequestBodyMandate'Interval'] -> ShowS
show :: PostSourcesRequestBodyMandate'Interval' -> String
$cshow :: PostSourcesRequestBodyMandate'Interval' -> String
showsPrec :: Int -> PostSourcesRequestBodyMandate'Interval' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyMandate'Interval' -> ShowS
GHC.Show.Show, PostSourcesRequestBodyMandate'Interval'
-> PostSourcesRequestBodyMandate'Interval' -> Bool
(PostSourcesRequestBodyMandate'Interval'
 -> PostSourcesRequestBodyMandate'Interval' -> Bool)
-> (PostSourcesRequestBodyMandate'Interval'
    -> PostSourcesRequestBodyMandate'Interval' -> Bool)
-> Eq PostSourcesRequestBodyMandate'Interval'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyMandate'Interval'
-> PostSourcesRequestBodyMandate'Interval' -> Bool
$c/= :: PostSourcesRequestBodyMandate'Interval'
-> PostSourcesRequestBodyMandate'Interval' -> Bool
== :: PostSourcesRequestBodyMandate'Interval'
-> PostSourcesRequestBodyMandate'Interval' -> Bool
$c== :: PostSourcesRequestBodyMandate'Interval'
-> PostSourcesRequestBodyMandate'Interval' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyMandate'Interval' where
  toJSON :: PostSourcesRequestBodyMandate'Interval' -> Value
toJSON (PostSourcesRequestBodyMandate'Interval'Other Value
val) = Value
val
  toJSON (PostSourcesRequestBodyMandate'Interval'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSourcesRequestBodyMandate'Interval'
PostSourcesRequestBodyMandate'Interval'EnumOneTime) = Value
"one_time"
  toJSON (PostSourcesRequestBodyMandate'Interval'
PostSourcesRequestBodyMandate'Interval'EnumScheduled) = Value
"scheduled"
  toJSON (PostSourcesRequestBodyMandate'Interval'
PostSourcesRequestBodyMandate'Interval'EnumVariable) = Value
"variable"

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodyMandate'Interval' where
  parseJSON :: Value -> Parser PostSourcesRequestBodyMandate'Interval'
parseJSON Value
val =
    PostSourcesRequestBodyMandate'Interval'
-> Parser PostSourcesRequestBodyMandate'Interval'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"one_time" -> PostSourcesRequestBodyMandate'Interval'
PostSourcesRequestBodyMandate'Interval'EnumOneTime
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"scheduled" -> PostSourcesRequestBodyMandate'Interval'
PostSourcesRequestBodyMandate'Interval'EnumScheduled
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"variable" -> PostSourcesRequestBodyMandate'Interval'
PostSourcesRequestBodyMandate'Interval'EnumVariable
            | Bool
GHC.Base.otherwise -> Value -> PostSourcesRequestBodyMandate'Interval'
PostSourcesRequestBodyMandate'Interval'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate.properties.notification_method@ in the specification.
data PostSourcesRequestBodyMandate'NotificationMethod'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSourcesRequestBodyMandate'NotificationMethod'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.
    PostSourcesRequestBodyMandate'NotificationMethod'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"deprecated_none"@
    PostSourcesRequestBodyMandate'NotificationMethod'EnumDeprecatedNone
  | -- | Represents the JSON value @"email"@
    PostSourcesRequestBodyMandate'NotificationMethod'EnumEmail
  | -- | Represents the JSON value @"manual"@
    PostSourcesRequestBodyMandate'NotificationMethod'EnumManual
  | -- | Represents the JSON value @"none"@
    PostSourcesRequestBodyMandate'NotificationMethod'EnumNone
  | -- | Represents the JSON value @"stripe_email"@
    PostSourcesRequestBodyMandate'NotificationMethod'EnumStripeEmail
  deriving (Int -> PostSourcesRequestBodyMandate'NotificationMethod' -> ShowS
[PostSourcesRequestBodyMandate'NotificationMethod'] -> ShowS
PostSourcesRequestBodyMandate'NotificationMethod' -> String
(Int -> PostSourcesRequestBodyMandate'NotificationMethod' -> ShowS)
-> (PostSourcesRequestBodyMandate'NotificationMethod' -> String)
-> ([PostSourcesRequestBodyMandate'NotificationMethod'] -> ShowS)
-> Show PostSourcesRequestBodyMandate'NotificationMethod'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyMandate'NotificationMethod'] -> ShowS
$cshowList :: [PostSourcesRequestBodyMandate'NotificationMethod'] -> ShowS
show :: PostSourcesRequestBodyMandate'NotificationMethod' -> String
$cshow :: PostSourcesRequestBodyMandate'NotificationMethod' -> String
showsPrec :: Int -> PostSourcesRequestBodyMandate'NotificationMethod' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyMandate'NotificationMethod' -> ShowS
GHC.Show.Show, PostSourcesRequestBodyMandate'NotificationMethod'
-> PostSourcesRequestBodyMandate'NotificationMethod' -> Bool
(PostSourcesRequestBodyMandate'NotificationMethod'
 -> PostSourcesRequestBodyMandate'NotificationMethod' -> Bool)
-> (PostSourcesRequestBodyMandate'NotificationMethod'
    -> PostSourcesRequestBodyMandate'NotificationMethod' -> Bool)
-> Eq PostSourcesRequestBodyMandate'NotificationMethod'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyMandate'NotificationMethod'
-> PostSourcesRequestBodyMandate'NotificationMethod' -> Bool
$c/= :: PostSourcesRequestBodyMandate'NotificationMethod'
-> PostSourcesRequestBodyMandate'NotificationMethod' -> Bool
== :: PostSourcesRequestBodyMandate'NotificationMethod'
-> PostSourcesRequestBodyMandate'NotificationMethod' -> Bool
$c== :: PostSourcesRequestBodyMandate'NotificationMethod'
-> PostSourcesRequestBodyMandate'NotificationMethod' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyMandate'NotificationMethod' where
  toJSON :: PostSourcesRequestBodyMandate'NotificationMethod' -> Value
toJSON (PostSourcesRequestBodyMandate'NotificationMethod'Other Value
val) = Value
val
  toJSON (PostSourcesRequestBodyMandate'NotificationMethod'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'EnumDeprecatedNone) = Value
"deprecated_none"
  toJSON (PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'EnumEmail) = Value
"email"
  toJSON (PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'EnumManual) = Value
"manual"
  toJSON (PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'EnumNone) = Value
"none"
  toJSON (PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'EnumStripeEmail) = Value
"stripe_email"

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodyMandate'NotificationMethod' where
  parseJSON :: Value -> Parser PostSourcesRequestBodyMandate'NotificationMethod'
parseJSON Value
val =
    PostSourcesRequestBodyMandate'NotificationMethod'
-> Parser PostSourcesRequestBodyMandate'NotificationMethod'
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
"deprecated_none" -> PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'EnumDeprecatedNone
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"email" -> PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'EnumEmail
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"manual" -> PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'EnumManual
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'EnumNone
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"stripe_email" -> PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'EnumStripeEmail
            | Bool
GHC.Base.otherwise -> Value -> PostSourcesRequestBodyMandate'NotificationMethod'
PostSourcesRequestBodyMandate'NotificationMethod'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.owner@ in the specification.
--
-- Information about the owner of the payment instrument that may be used or required by particular source types.
data PostSourcesRequestBodyOwner' = PostSourcesRequestBodyOwner'
  { -- | address
    PostSourcesRequestBodyOwner'
-> Maybe PostSourcesRequestBodyOwner'Address'
postSourcesRequestBodyOwner'Address :: (GHC.Maybe.Maybe PostSourcesRequestBodyOwner'Address'),
    -- | email
    PostSourcesRequestBodyOwner' -> Maybe Text
postSourcesRequestBodyOwner'Email :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyOwner' -> Maybe Text
postSourcesRequestBodyOwner'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | phone
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyOwner' -> Maybe Text
postSourcesRequestBodyOwner'Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PostSourcesRequestBodyOwner' -> ShowS
[PostSourcesRequestBodyOwner'] -> ShowS
PostSourcesRequestBodyOwner' -> String
(Int -> PostSourcesRequestBodyOwner' -> ShowS)
-> (PostSourcesRequestBodyOwner' -> String)
-> ([PostSourcesRequestBodyOwner'] -> ShowS)
-> Show PostSourcesRequestBodyOwner'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyOwner'] -> ShowS
$cshowList :: [PostSourcesRequestBodyOwner'] -> ShowS
show :: PostSourcesRequestBodyOwner' -> String
$cshow :: PostSourcesRequestBodyOwner' -> String
showsPrec :: Int -> PostSourcesRequestBodyOwner' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyOwner' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodyOwner'
-> PostSourcesRequestBodyOwner' -> Bool
(PostSourcesRequestBodyOwner'
 -> PostSourcesRequestBodyOwner' -> Bool)
-> (PostSourcesRequestBodyOwner'
    -> PostSourcesRequestBodyOwner' -> Bool)
-> Eq PostSourcesRequestBodyOwner'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyOwner'
-> PostSourcesRequestBodyOwner' -> Bool
$c/= :: PostSourcesRequestBodyOwner'
-> PostSourcesRequestBodyOwner' -> Bool
== :: PostSourcesRequestBodyOwner'
-> PostSourcesRequestBodyOwner' -> Bool
$c== :: PostSourcesRequestBodyOwner'
-> PostSourcesRequestBodyOwner' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyOwner' where
  toJSON :: PostSourcesRequestBodyOwner' -> Value
toJSON PostSourcesRequestBodyOwner'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text -> Maybe PostSourcesRequestBodyOwner'Address' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyOwner'
-> Maybe PostSourcesRequestBodyOwner'Address'
postSourcesRequestBodyOwner'Address PostSourcesRequestBodyOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"email" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyOwner' -> Maybe Text
postSourcesRequestBodyOwner'Email PostSourcesRequestBodyOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyOwner' -> Maybe Text
postSourcesRequestBodyOwner'Name PostSourcesRequestBodyOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"phone" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyOwner' -> Maybe Text
postSourcesRequestBodyOwner'Phone PostSourcesRequestBodyOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSourcesRequestBodyOwner' -> Encoding
toEncoding PostSourcesRequestBodyOwner'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text -> Maybe PostSourcesRequestBodyOwner'Address' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyOwner'
-> Maybe PostSourcesRequestBodyOwner'Address'
postSourcesRequestBodyOwner'Address PostSourcesRequestBodyOwner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"email" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyOwner' -> Maybe Text
postSourcesRequestBodyOwner'Email PostSourcesRequestBodyOwner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyOwner' -> Maybe Text
postSourcesRequestBodyOwner'Name PostSourcesRequestBodyOwner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"phone" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyOwner' -> Maybe Text
postSourcesRequestBodyOwner'Phone PostSourcesRequestBodyOwner'
obj))))

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

-- | Create a new 'PostSourcesRequestBodyOwner'' with all required fields.
mkPostSourcesRequestBodyOwner' :: PostSourcesRequestBodyOwner'
mkPostSourcesRequestBodyOwner' :: PostSourcesRequestBodyOwner'
mkPostSourcesRequestBodyOwner' =
  PostSourcesRequestBodyOwner' :: Maybe PostSourcesRequestBodyOwner'Address'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PostSourcesRequestBodyOwner'
PostSourcesRequestBodyOwner'
    { postSourcesRequestBodyOwner'Address :: Maybe PostSourcesRequestBodyOwner'Address'
postSourcesRequestBodyOwner'Address = Maybe PostSourcesRequestBodyOwner'Address'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyOwner'Email :: Maybe Text
postSourcesRequestBodyOwner'Email = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyOwner'Name :: Maybe Text
postSourcesRequestBodyOwner'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyOwner'Phone :: Maybe Text
postSourcesRequestBodyOwner'Phone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.owner.properties.address@ in the specification.
data PostSourcesRequestBodyOwner'Address' = PostSourcesRequestBodyOwner'Address'
  { -- | city
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyOwner'Address' -> Maybe Text
postSourcesRequestBodyOwner'Address'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyOwner'Address' -> Maybe Text
postSourcesRequestBodyOwner'Address'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyOwner'Address' -> Maybe Text
postSourcesRequestBodyOwner'Address'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyOwner'Address' -> Maybe Text
postSourcesRequestBodyOwner'Address'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyOwner'Address' -> Maybe Text
postSourcesRequestBodyOwner'Address'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyOwner'Address' -> Maybe Text
postSourcesRequestBodyOwner'Address'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PostSourcesRequestBodyOwner'Address' -> ShowS
[PostSourcesRequestBodyOwner'Address'] -> ShowS
PostSourcesRequestBodyOwner'Address' -> String
(Int -> PostSourcesRequestBodyOwner'Address' -> ShowS)
-> (PostSourcesRequestBodyOwner'Address' -> String)
-> ([PostSourcesRequestBodyOwner'Address'] -> ShowS)
-> Show PostSourcesRequestBodyOwner'Address'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyOwner'Address'] -> ShowS
$cshowList :: [PostSourcesRequestBodyOwner'Address'] -> ShowS
show :: PostSourcesRequestBodyOwner'Address' -> String
$cshow :: PostSourcesRequestBodyOwner'Address' -> String
showsPrec :: Int -> PostSourcesRequestBodyOwner'Address' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyOwner'Address' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodyOwner'Address'
-> PostSourcesRequestBodyOwner'Address' -> Bool
(PostSourcesRequestBodyOwner'Address'
 -> PostSourcesRequestBodyOwner'Address' -> Bool)
-> (PostSourcesRequestBodyOwner'Address'
    -> PostSourcesRequestBodyOwner'Address' -> Bool)
-> Eq PostSourcesRequestBodyOwner'Address'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyOwner'Address'
-> PostSourcesRequestBodyOwner'Address' -> Bool
$c/= :: PostSourcesRequestBodyOwner'Address'
-> PostSourcesRequestBodyOwner'Address' -> Bool
== :: PostSourcesRequestBodyOwner'Address'
-> PostSourcesRequestBodyOwner'Address' -> Bool
$c== :: PostSourcesRequestBodyOwner'Address'
-> PostSourcesRequestBodyOwner'Address' -> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostSourcesRequestBodyOwner'Address'' with all required fields.
mkPostSourcesRequestBodyOwner'Address' :: PostSourcesRequestBodyOwner'Address'
mkPostSourcesRequestBodyOwner'Address' :: PostSourcesRequestBodyOwner'Address'
mkPostSourcesRequestBodyOwner'Address' =
  PostSourcesRequestBodyOwner'Address' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PostSourcesRequestBodyOwner'Address'
PostSourcesRequestBodyOwner'Address'
    { postSourcesRequestBodyOwner'Address'City :: Maybe Text
postSourcesRequestBodyOwner'Address'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyOwner'Address'Country :: Maybe Text
postSourcesRequestBodyOwner'Address'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyOwner'Address'Line1 :: Maybe Text
postSourcesRequestBodyOwner'Address'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyOwner'Address'Line2 :: Maybe Text
postSourcesRequestBodyOwner'Address'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyOwner'Address'PostalCode :: Maybe Text
postSourcesRequestBodyOwner'Address'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodyOwner'Address'State :: Maybe Text
postSourcesRequestBodyOwner'Address'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.receiver@ in the specification.
--
-- Optional parameters for the receiver flow. Can be set only if the source is a receiver (\`flow\` is \`receiver\`).
data PostSourcesRequestBodyReceiver' = PostSourcesRequestBodyReceiver'
  { -- | refund_attributes_method
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodyReceiver'
-> Maybe PostSourcesRequestBodyReceiver'RefundAttributesMethod'
postSourcesRequestBodyReceiver'RefundAttributesMethod :: (GHC.Maybe.Maybe PostSourcesRequestBodyReceiver'RefundAttributesMethod')
  }
  deriving
    ( Int -> PostSourcesRequestBodyReceiver' -> ShowS
[PostSourcesRequestBodyReceiver'] -> ShowS
PostSourcesRequestBodyReceiver' -> String
(Int -> PostSourcesRequestBodyReceiver' -> ShowS)
-> (PostSourcesRequestBodyReceiver' -> String)
-> ([PostSourcesRequestBodyReceiver'] -> ShowS)
-> Show PostSourcesRequestBodyReceiver'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyReceiver'] -> ShowS
$cshowList :: [PostSourcesRequestBodyReceiver'] -> ShowS
show :: PostSourcesRequestBodyReceiver' -> String
$cshow :: PostSourcesRequestBodyReceiver' -> String
showsPrec :: Int -> PostSourcesRequestBodyReceiver' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyReceiver' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodyReceiver'
-> PostSourcesRequestBodyReceiver' -> Bool
(PostSourcesRequestBodyReceiver'
 -> PostSourcesRequestBodyReceiver' -> Bool)
-> (PostSourcesRequestBodyReceiver'
    -> PostSourcesRequestBodyReceiver' -> Bool)
-> Eq PostSourcesRequestBodyReceiver'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyReceiver'
-> PostSourcesRequestBodyReceiver' -> Bool
$c/= :: PostSourcesRequestBodyReceiver'
-> PostSourcesRequestBodyReceiver' -> Bool
== :: PostSourcesRequestBodyReceiver'
-> PostSourcesRequestBodyReceiver' -> Bool
$c== :: PostSourcesRequestBodyReceiver'
-> PostSourcesRequestBodyReceiver' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyReceiver' where
  toJSON :: PostSourcesRequestBodyReceiver' -> Value
toJSON PostSourcesRequestBodyReceiver'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"refund_attributes_method" Text
-> Maybe PostSourcesRequestBodyReceiver'RefundAttributesMethod'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyReceiver'
-> Maybe PostSourcesRequestBodyReceiver'RefundAttributesMethod'
postSourcesRequestBodyReceiver'RefundAttributesMethod PostSourcesRequestBodyReceiver'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSourcesRequestBodyReceiver' -> Encoding
toEncoding PostSourcesRequestBodyReceiver'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"refund_attributes_method" Text
-> Maybe PostSourcesRequestBodyReceiver'RefundAttributesMethod'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodyReceiver'
-> Maybe PostSourcesRequestBodyReceiver'RefundAttributesMethod'
postSourcesRequestBodyReceiver'RefundAttributesMethod PostSourcesRequestBodyReceiver'
obj)

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

-- | Create a new 'PostSourcesRequestBodyReceiver'' with all required fields.
mkPostSourcesRequestBodyReceiver' :: PostSourcesRequestBodyReceiver'
mkPostSourcesRequestBodyReceiver' :: PostSourcesRequestBodyReceiver'
mkPostSourcesRequestBodyReceiver' = PostSourcesRequestBodyReceiver' :: Maybe PostSourcesRequestBodyReceiver'RefundAttributesMethod'
-> PostSourcesRequestBodyReceiver'
PostSourcesRequestBodyReceiver' {postSourcesRequestBodyReceiver'RefundAttributesMethod :: Maybe PostSourcesRequestBodyReceiver'RefundAttributesMethod'
postSourcesRequestBodyReceiver'RefundAttributesMethod = Maybe PostSourcesRequestBodyReceiver'RefundAttributesMethod'
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the enum schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.receiver.properties.refund_attributes_method@ in the specification.
data PostSourcesRequestBodyReceiver'RefundAttributesMethod'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSourcesRequestBodyReceiver'RefundAttributesMethod'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.
    PostSourcesRequestBodyReceiver'RefundAttributesMethod'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"email"@
    PostSourcesRequestBodyReceiver'RefundAttributesMethod'EnumEmail
  | -- | Represents the JSON value @"manual"@
    PostSourcesRequestBodyReceiver'RefundAttributesMethod'EnumManual
  | -- | Represents the JSON value @"none"@
    PostSourcesRequestBodyReceiver'RefundAttributesMethod'EnumNone
  deriving (Int
-> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> ShowS
[PostSourcesRequestBodyReceiver'RefundAttributesMethod'] -> ShowS
PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> String
(Int
 -> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> ShowS)
-> (PostSourcesRequestBodyReceiver'RefundAttributesMethod'
    -> String)
-> ([PostSourcesRequestBodyReceiver'RefundAttributesMethod']
    -> ShowS)
-> Show PostSourcesRequestBodyReceiver'RefundAttributesMethod'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyReceiver'RefundAttributesMethod'] -> ShowS
$cshowList :: [PostSourcesRequestBodyReceiver'RefundAttributesMethod'] -> ShowS
show :: PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> String
$cshow :: PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> String
showsPrec :: Int
-> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> ShowS
$cshowsPrec :: Int
-> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> ShowS
GHC.Show.Show, PostSourcesRequestBodyReceiver'RefundAttributesMethod'
-> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> Bool
(PostSourcesRequestBodyReceiver'RefundAttributesMethod'
 -> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> Bool)
-> (PostSourcesRequestBodyReceiver'RefundAttributesMethod'
    -> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> Bool)
-> Eq PostSourcesRequestBodyReceiver'RefundAttributesMethod'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyReceiver'RefundAttributesMethod'
-> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> Bool
$c/= :: PostSourcesRequestBodyReceiver'RefundAttributesMethod'
-> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> Bool
== :: PostSourcesRequestBodyReceiver'RefundAttributesMethod'
-> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> Bool
$c== :: PostSourcesRequestBodyReceiver'RefundAttributesMethod'
-> PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyReceiver'RefundAttributesMethod' where
  toJSON :: PostSourcesRequestBodyReceiver'RefundAttributesMethod' -> Value
toJSON (PostSourcesRequestBodyReceiver'RefundAttributesMethod'Other Value
val) = Value
val
  toJSON (PostSourcesRequestBodyReceiver'RefundAttributesMethod'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSourcesRequestBodyReceiver'RefundAttributesMethod'
PostSourcesRequestBodyReceiver'RefundAttributesMethod'EnumEmail) = Value
"email"
  toJSON (PostSourcesRequestBodyReceiver'RefundAttributesMethod'
PostSourcesRequestBodyReceiver'RefundAttributesMethod'EnumManual) = Value
"manual"
  toJSON (PostSourcesRequestBodyReceiver'RefundAttributesMethod'
PostSourcesRequestBodyReceiver'RefundAttributesMethod'EnumNone) = Value
"none"

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodyReceiver'RefundAttributesMethod' where
  parseJSON :: Value
-> Parser PostSourcesRequestBodyReceiver'RefundAttributesMethod'
parseJSON Value
val =
    PostSourcesRequestBodyReceiver'RefundAttributesMethod'
-> Parser PostSourcesRequestBodyReceiver'RefundAttributesMethod'
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
"email" -> PostSourcesRequestBodyReceiver'RefundAttributesMethod'
PostSourcesRequestBodyReceiver'RefundAttributesMethod'EnumEmail
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"manual" -> PostSourcesRequestBodyReceiver'RefundAttributesMethod'
PostSourcesRequestBodyReceiver'RefundAttributesMethod'EnumManual
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> PostSourcesRequestBodyReceiver'RefundAttributesMethod'
PostSourcesRequestBodyReceiver'RefundAttributesMethod'EnumNone
            | Bool
GHC.Base.otherwise -> Value -> PostSourcesRequestBodyReceiver'RefundAttributesMethod'
PostSourcesRequestBodyReceiver'RefundAttributesMethod'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.redirect@ in the specification.
--
-- Parameters required for the redirect flow. Required if the source is authenticated by a redirect (\`flow\` is \`redirect\`).
data PostSourcesRequestBodyRedirect' = PostSourcesRequestBodyRedirect'
  { -- | return_url
    PostSourcesRequestBodyRedirect' -> Text
postSourcesRequestBodyRedirect'ReturnUrl :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> PostSourcesRequestBodyRedirect' -> ShowS
[PostSourcesRequestBodyRedirect'] -> ShowS
PostSourcesRequestBodyRedirect' -> String
(Int -> PostSourcesRequestBodyRedirect' -> ShowS)
-> (PostSourcesRequestBodyRedirect' -> String)
-> ([PostSourcesRequestBodyRedirect'] -> ShowS)
-> Show PostSourcesRequestBodyRedirect'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyRedirect'] -> ShowS
$cshowList :: [PostSourcesRequestBodyRedirect'] -> ShowS
show :: PostSourcesRequestBodyRedirect' -> String
$cshow :: PostSourcesRequestBodyRedirect' -> String
showsPrec :: Int -> PostSourcesRequestBodyRedirect' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyRedirect' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodyRedirect'
-> PostSourcesRequestBodyRedirect' -> Bool
(PostSourcesRequestBodyRedirect'
 -> PostSourcesRequestBodyRedirect' -> Bool)
-> (PostSourcesRequestBodyRedirect'
    -> PostSourcesRequestBodyRedirect' -> Bool)
-> Eq PostSourcesRequestBodyRedirect'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyRedirect'
-> PostSourcesRequestBodyRedirect' -> Bool
$c/= :: PostSourcesRequestBodyRedirect'
-> PostSourcesRequestBodyRedirect' -> Bool
== :: PostSourcesRequestBodyRedirect'
-> PostSourcesRequestBodyRedirect' -> Bool
$c== :: PostSourcesRequestBodyRedirect'
-> PostSourcesRequestBodyRedirect' -> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostSourcesRequestBodyRedirect'' with all required fields.
mkPostSourcesRequestBodyRedirect' ::
  -- | 'postSourcesRequestBodyRedirect'ReturnUrl'
  Data.Text.Internal.Text ->
  PostSourcesRequestBodyRedirect'
mkPostSourcesRequestBodyRedirect' :: Text -> PostSourcesRequestBodyRedirect'
mkPostSourcesRequestBodyRedirect' Text
postSourcesRequestBodyRedirect'ReturnUrl = PostSourcesRequestBodyRedirect' :: Text -> PostSourcesRequestBodyRedirect'
PostSourcesRequestBodyRedirect' {postSourcesRequestBodyRedirect'ReturnUrl :: Text
postSourcesRequestBodyRedirect'ReturnUrl = Text
postSourcesRequestBodyRedirect'ReturnUrl}

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.source_order@ in the specification.
--
-- Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it.
data PostSourcesRequestBodySourceOrder' = PostSourcesRequestBodySourceOrder'
  { -- | items
    PostSourcesRequestBodySourceOrder'
-> Maybe [PostSourcesRequestBodySourceOrder'Items']
postSourcesRequestBodySourceOrder'Items :: (GHC.Maybe.Maybe ([PostSourcesRequestBodySourceOrder'Items'])),
    -- | shipping
    PostSourcesRequestBodySourceOrder'
-> Maybe PostSourcesRequestBodySourceOrder'Shipping'
postSourcesRequestBodySourceOrder'Shipping :: (GHC.Maybe.Maybe PostSourcesRequestBodySourceOrder'Shipping')
  }
  deriving
    ( Int -> PostSourcesRequestBodySourceOrder' -> ShowS
[PostSourcesRequestBodySourceOrder'] -> ShowS
PostSourcesRequestBodySourceOrder' -> String
(Int -> PostSourcesRequestBodySourceOrder' -> ShowS)
-> (PostSourcesRequestBodySourceOrder' -> String)
-> ([PostSourcesRequestBodySourceOrder'] -> ShowS)
-> Show PostSourcesRequestBodySourceOrder'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodySourceOrder'] -> ShowS
$cshowList :: [PostSourcesRequestBodySourceOrder'] -> ShowS
show :: PostSourcesRequestBodySourceOrder' -> String
$cshow :: PostSourcesRequestBodySourceOrder' -> String
showsPrec :: Int -> PostSourcesRequestBodySourceOrder' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodySourceOrder' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodySourceOrder'
-> PostSourcesRequestBodySourceOrder' -> Bool
(PostSourcesRequestBodySourceOrder'
 -> PostSourcesRequestBodySourceOrder' -> Bool)
-> (PostSourcesRequestBodySourceOrder'
    -> PostSourcesRequestBodySourceOrder' -> Bool)
-> Eq PostSourcesRequestBodySourceOrder'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodySourceOrder'
-> PostSourcesRequestBodySourceOrder' -> Bool
$c/= :: PostSourcesRequestBodySourceOrder'
-> PostSourcesRequestBodySourceOrder' -> Bool
== :: PostSourcesRequestBodySourceOrder'
-> PostSourcesRequestBodySourceOrder' -> Bool
$c== :: PostSourcesRequestBodySourceOrder'
-> PostSourcesRequestBodySourceOrder' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodySourceOrder' where
  toJSON :: PostSourcesRequestBodySourceOrder' -> Value
toJSON PostSourcesRequestBodySourceOrder'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"items" Text -> Maybe [PostSourcesRequestBodySourceOrder'Items'] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'
-> Maybe [PostSourcesRequestBodySourceOrder'Items']
postSourcesRequestBodySourceOrder'Items PostSourcesRequestBodySourceOrder'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"shipping" Text -> Maybe PostSourcesRequestBodySourceOrder'Shipping' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'
-> Maybe PostSourcesRequestBodySourceOrder'Shipping'
postSourcesRequestBodySourceOrder'Shipping PostSourcesRequestBodySourceOrder'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSourcesRequestBodySourceOrder' -> Encoding
toEncoding PostSourcesRequestBodySourceOrder'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"items" Text -> Maybe [PostSourcesRequestBodySourceOrder'Items'] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'
-> Maybe [PostSourcesRequestBodySourceOrder'Items']
postSourcesRequestBodySourceOrder'Items PostSourcesRequestBodySourceOrder'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"shipping" Text -> Maybe PostSourcesRequestBodySourceOrder'Shipping' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'
-> Maybe PostSourcesRequestBodySourceOrder'Shipping'
postSourcesRequestBodySourceOrder'Shipping PostSourcesRequestBodySourceOrder'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodySourceOrder' where
  parseJSON :: Value -> Parser PostSourcesRequestBodySourceOrder'
parseJSON = String
-> (Object -> Parser PostSourcesRequestBodySourceOrder')
-> Value
-> Parser PostSourcesRequestBodySourceOrder'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSourcesRequestBodySourceOrder'" (\Object
obj -> ((Maybe [PostSourcesRequestBodySourceOrder'Items']
 -> Maybe PostSourcesRequestBodySourceOrder'Shipping'
 -> PostSourcesRequestBodySourceOrder')
-> Parser
     (Maybe [PostSourcesRequestBodySourceOrder'Items']
      -> Maybe PostSourcesRequestBodySourceOrder'Shipping'
      -> PostSourcesRequestBodySourceOrder')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe [PostSourcesRequestBodySourceOrder'Items']
-> Maybe PostSourcesRequestBodySourceOrder'Shipping'
-> PostSourcesRequestBodySourceOrder'
PostSourcesRequestBodySourceOrder' Parser
  (Maybe [PostSourcesRequestBodySourceOrder'Items']
   -> Maybe PostSourcesRequestBodySourceOrder'Shipping'
   -> PostSourcesRequestBodySourceOrder')
-> Parser (Maybe [PostSourcesRequestBodySourceOrder'Items'])
-> Parser
     (Maybe PostSourcesRequestBodySourceOrder'Shipping'
      -> PostSourcesRequestBodySourceOrder')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe [PostSourcesRequestBodySourceOrder'Items'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"items")) Parser
  (Maybe PostSourcesRequestBodySourceOrder'Shipping'
   -> PostSourcesRequestBodySourceOrder')
-> Parser (Maybe PostSourcesRequestBodySourceOrder'Shipping')
-> Parser PostSourcesRequestBodySourceOrder'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostSourcesRequestBodySourceOrder'Shipping')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"shipping"))

-- | Create a new 'PostSourcesRequestBodySourceOrder'' with all required fields.
mkPostSourcesRequestBodySourceOrder' :: PostSourcesRequestBodySourceOrder'
mkPostSourcesRequestBodySourceOrder' :: PostSourcesRequestBodySourceOrder'
mkPostSourcesRequestBodySourceOrder' =
  PostSourcesRequestBodySourceOrder' :: Maybe [PostSourcesRequestBodySourceOrder'Items']
-> Maybe PostSourcesRequestBodySourceOrder'Shipping'
-> PostSourcesRequestBodySourceOrder'
PostSourcesRequestBodySourceOrder'
    { postSourcesRequestBodySourceOrder'Items :: Maybe [PostSourcesRequestBodySourceOrder'Items']
postSourcesRequestBodySourceOrder'Items = Maybe [PostSourcesRequestBodySourceOrder'Items']
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Shipping :: Maybe PostSourcesRequestBodySourceOrder'Shipping'
postSourcesRequestBodySourceOrder'Shipping = Maybe PostSourcesRequestBodySourceOrder'Shipping'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.source_order.properties.items.items@ in the specification.
data PostSourcesRequestBodySourceOrder'Items' = PostSourcesRequestBodySourceOrder'Items'
  { -- | amount
    PostSourcesRequestBodySourceOrder'Items' -> Maybe Int
postSourcesRequestBodySourceOrder'Items'Amount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | currency
    PostSourcesRequestBodySourceOrder'Items' -> Maybe Text
postSourcesRequestBodySourceOrder'Items'Currency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | description
    --
    -- Constraints:
    --
    -- * Maximum length of 1000
    PostSourcesRequestBodySourceOrder'Items' -> Maybe Text
postSourcesRequestBodySourceOrder'Items'Description :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | parent
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Items' -> Maybe Text
postSourcesRequestBodySourceOrder'Items'Parent :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | quantity
    PostSourcesRequestBodySourceOrder'Items' -> Maybe Int
postSourcesRequestBodySourceOrder'Items'Quantity :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | type
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Items'
-> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
postSourcesRequestBodySourceOrder'Items'Type :: (GHC.Maybe.Maybe PostSourcesRequestBodySourceOrder'Items'Type')
  }
  deriving
    ( Int -> PostSourcesRequestBodySourceOrder'Items' -> ShowS
[PostSourcesRequestBodySourceOrder'Items'] -> ShowS
PostSourcesRequestBodySourceOrder'Items' -> String
(Int -> PostSourcesRequestBodySourceOrder'Items' -> ShowS)
-> (PostSourcesRequestBodySourceOrder'Items' -> String)
-> ([PostSourcesRequestBodySourceOrder'Items'] -> ShowS)
-> Show PostSourcesRequestBodySourceOrder'Items'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodySourceOrder'Items'] -> ShowS
$cshowList :: [PostSourcesRequestBodySourceOrder'Items'] -> ShowS
show :: PostSourcesRequestBodySourceOrder'Items' -> String
$cshow :: PostSourcesRequestBodySourceOrder'Items' -> String
showsPrec :: Int -> PostSourcesRequestBodySourceOrder'Items' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodySourceOrder'Items' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodySourceOrder'Items'
-> PostSourcesRequestBodySourceOrder'Items' -> Bool
(PostSourcesRequestBodySourceOrder'Items'
 -> PostSourcesRequestBodySourceOrder'Items' -> Bool)
-> (PostSourcesRequestBodySourceOrder'Items'
    -> PostSourcesRequestBodySourceOrder'Items' -> Bool)
-> Eq PostSourcesRequestBodySourceOrder'Items'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodySourceOrder'Items'
-> PostSourcesRequestBodySourceOrder'Items' -> Bool
$c/= :: PostSourcesRequestBodySourceOrder'Items'
-> PostSourcesRequestBodySourceOrder'Items' -> Bool
== :: PostSourcesRequestBodySourceOrder'Items'
-> PostSourcesRequestBodySourceOrder'Items' -> Bool
$c== :: PostSourcesRequestBodySourceOrder'Items'
-> PostSourcesRequestBodySourceOrder'Items' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodySourceOrder'Items' where
  toJSON :: PostSourcesRequestBodySourceOrder'Items' -> Value
toJSON PostSourcesRequestBodySourceOrder'Items'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items' -> Maybe Int
postSourcesRequestBodySourceOrder'Items'Amount PostSourcesRequestBodySourceOrder'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items' -> Maybe Text
postSourcesRequestBodySourceOrder'Items'Currency PostSourcesRequestBodySourceOrder'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"description" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items' -> Maybe Text
postSourcesRequestBodySourceOrder'Items'Description PostSourcesRequestBodySourceOrder'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"parent" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items' -> Maybe Text
postSourcesRequestBodySourceOrder'Items'Parent PostSourcesRequestBodySourceOrder'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"quantity" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items' -> Maybe Int
postSourcesRequestBodySourceOrder'Items'Quantity PostSourcesRequestBodySourceOrder'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> Maybe PostSourcesRequestBodySourceOrder'Items'Type' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items'
-> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
postSourcesRequestBodySourceOrder'Items'Type PostSourcesRequestBodySourceOrder'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSourcesRequestBodySourceOrder'Items' -> Encoding
toEncoding PostSourcesRequestBodySourceOrder'Items'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items' -> Maybe Int
postSourcesRequestBodySourceOrder'Items'Amount PostSourcesRequestBodySourceOrder'Items'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items' -> Maybe Text
postSourcesRequestBodySourceOrder'Items'Currency PostSourcesRequestBodySourceOrder'Items'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"description" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items' -> Maybe Text
postSourcesRequestBodySourceOrder'Items'Description PostSourcesRequestBodySourceOrder'Items'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"parent" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items' -> Maybe Text
postSourcesRequestBodySourceOrder'Items'Parent PostSourcesRequestBodySourceOrder'Items'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"quantity" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items' -> Maybe Int
postSourcesRequestBodySourceOrder'Items'Quantity PostSourcesRequestBodySourceOrder'Items'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"type" Text
-> Maybe PostSourcesRequestBodySourceOrder'Items'Type' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Items'
-> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
postSourcesRequestBodySourceOrder'Items'Type PostSourcesRequestBodySourceOrder'Items'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodySourceOrder'Items' where
  parseJSON :: Value -> Parser PostSourcesRequestBodySourceOrder'Items'
parseJSON = String
-> (Object -> Parser PostSourcesRequestBodySourceOrder'Items')
-> Value
-> Parser PostSourcesRequestBodySourceOrder'Items'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSourcesRequestBodySourceOrder'Items'" (\Object
obj -> ((((((Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
 -> PostSourcesRequestBodySourceOrder'Items')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
      -> PostSourcesRequestBodySourceOrder'Items')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
-> PostSourcesRequestBodySourceOrder'Items'
PostSourcesRequestBodySourceOrder'Items' Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
   -> PostSourcesRequestBodySourceOrder'Items')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
      -> PostSourcesRequestBodySourceOrder'Items')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
   -> PostSourcesRequestBodySourceOrder'Items')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
      -> PostSourcesRequestBodySourceOrder'Items')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"currency")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
   -> PostSourcesRequestBodySourceOrder'Items')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
      -> PostSourcesRequestBodySourceOrder'Items')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"description")) Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
   -> PostSourcesRequestBodySourceOrder'Items')
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
      -> PostSourcesRequestBodySourceOrder'Items')
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
"parent")) Parser
  (Maybe Int
   -> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
   -> PostSourcesRequestBodySourceOrder'Items')
-> Parser (Maybe Int)
-> Parser
     (Maybe PostSourcesRequestBodySourceOrder'Items'Type'
      -> PostSourcesRequestBodySourceOrder'Items')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"quantity")) Parser
  (Maybe PostSourcesRequestBodySourceOrder'Items'Type'
   -> PostSourcesRequestBodySourceOrder'Items')
-> Parser (Maybe PostSourcesRequestBodySourceOrder'Items'Type')
-> Parser PostSourcesRequestBodySourceOrder'Items'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostSourcesRequestBodySourceOrder'Items'Type')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"type"))

-- | Create a new 'PostSourcesRequestBodySourceOrder'Items'' with all required fields.
mkPostSourcesRequestBodySourceOrder'Items' :: PostSourcesRequestBodySourceOrder'Items'
mkPostSourcesRequestBodySourceOrder'Items' :: PostSourcesRequestBodySourceOrder'Items'
mkPostSourcesRequestBodySourceOrder'Items' =
  PostSourcesRequestBodySourceOrder'Items' :: Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe PostSourcesRequestBodySourceOrder'Items'Type'
-> PostSourcesRequestBodySourceOrder'Items'
PostSourcesRequestBodySourceOrder'Items'
    { postSourcesRequestBodySourceOrder'Items'Amount :: Maybe Int
postSourcesRequestBodySourceOrder'Items'Amount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Items'Currency :: Maybe Text
postSourcesRequestBodySourceOrder'Items'Currency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Items'Description :: Maybe Text
postSourcesRequestBodySourceOrder'Items'Description = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Items'Parent :: Maybe Text
postSourcesRequestBodySourceOrder'Items'Parent = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Items'Quantity :: Maybe Int
postSourcesRequestBodySourceOrder'Items'Quantity = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Items'Type :: Maybe PostSourcesRequestBodySourceOrder'Items'Type'
postSourcesRequestBodySourceOrder'Items'Type = Maybe PostSourcesRequestBodySourceOrder'Items'Type'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.source_order.properties.items.items.properties.type@ in the specification.
data PostSourcesRequestBodySourceOrder'Items'Type'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSourcesRequestBodySourceOrder'Items'Type'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSourcesRequestBodySourceOrder'Items'Type'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"discount"@
    PostSourcesRequestBodySourceOrder'Items'Type'EnumDiscount
  | -- | Represents the JSON value @"shipping"@
    PostSourcesRequestBodySourceOrder'Items'Type'EnumShipping
  | -- | Represents the JSON value @"sku"@
    PostSourcesRequestBodySourceOrder'Items'Type'EnumSku
  | -- | Represents the JSON value @"tax"@
    PostSourcesRequestBodySourceOrder'Items'Type'EnumTax
  deriving (Int -> PostSourcesRequestBodySourceOrder'Items'Type' -> ShowS
[PostSourcesRequestBodySourceOrder'Items'Type'] -> ShowS
PostSourcesRequestBodySourceOrder'Items'Type' -> String
(Int -> PostSourcesRequestBodySourceOrder'Items'Type' -> ShowS)
-> (PostSourcesRequestBodySourceOrder'Items'Type' -> String)
-> ([PostSourcesRequestBodySourceOrder'Items'Type'] -> ShowS)
-> Show PostSourcesRequestBodySourceOrder'Items'Type'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodySourceOrder'Items'Type'] -> ShowS
$cshowList :: [PostSourcesRequestBodySourceOrder'Items'Type'] -> ShowS
show :: PostSourcesRequestBodySourceOrder'Items'Type' -> String
$cshow :: PostSourcesRequestBodySourceOrder'Items'Type' -> String
showsPrec :: Int -> PostSourcesRequestBodySourceOrder'Items'Type' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodySourceOrder'Items'Type' -> ShowS
GHC.Show.Show, PostSourcesRequestBodySourceOrder'Items'Type'
-> PostSourcesRequestBodySourceOrder'Items'Type' -> Bool
(PostSourcesRequestBodySourceOrder'Items'Type'
 -> PostSourcesRequestBodySourceOrder'Items'Type' -> Bool)
-> (PostSourcesRequestBodySourceOrder'Items'Type'
    -> PostSourcesRequestBodySourceOrder'Items'Type' -> Bool)
-> Eq PostSourcesRequestBodySourceOrder'Items'Type'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodySourceOrder'Items'Type'
-> PostSourcesRequestBodySourceOrder'Items'Type' -> Bool
$c/= :: PostSourcesRequestBodySourceOrder'Items'Type'
-> PostSourcesRequestBodySourceOrder'Items'Type' -> Bool
== :: PostSourcesRequestBodySourceOrder'Items'Type'
-> PostSourcesRequestBodySourceOrder'Items'Type' -> Bool
$c== :: PostSourcesRequestBodySourceOrder'Items'Type'
-> PostSourcesRequestBodySourceOrder'Items'Type' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodySourceOrder'Items'Type' where
  toJSON :: PostSourcesRequestBodySourceOrder'Items'Type' -> Value
toJSON (PostSourcesRequestBodySourceOrder'Items'Type'Other Value
val) = Value
val
  toJSON (PostSourcesRequestBodySourceOrder'Items'Type'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSourcesRequestBodySourceOrder'Items'Type'
PostSourcesRequestBodySourceOrder'Items'Type'EnumDiscount) = Value
"discount"
  toJSON (PostSourcesRequestBodySourceOrder'Items'Type'
PostSourcesRequestBodySourceOrder'Items'Type'EnumShipping) = Value
"shipping"
  toJSON (PostSourcesRequestBodySourceOrder'Items'Type'
PostSourcesRequestBodySourceOrder'Items'Type'EnumSku) = Value
"sku"
  toJSON (PostSourcesRequestBodySourceOrder'Items'Type'
PostSourcesRequestBodySourceOrder'Items'Type'EnumTax) = Value
"tax"

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodySourceOrder'Items'Type' where
  parseJSON :: Value -> Parser PostSourcesRequestBodySourceOrder'Items'Type'
parseJSON Value
val =
    PostSourcesRequestBodySourceOrder'Items'Type'
-> Parser PostSourcesRequestBodySourceOrder'Items'Type'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"discount" -> PostSourcesRequestBodySourceOrder'Items'Type'
PostSourcesRequestBodySourceOrder'Items'Type'EnumDiscount
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"shipping" -> PostSourcesRequestBodySourceOrder'Items'Type'
PostSourcesRequestBodySourceOrder'Items'Type'EnumShipping
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sku" -> PostSourcesRequestBodySourceOrder'Items'Type'
PostSourcesRequestBodySourceOrder'Items'Type'EnumSku
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"tax" -> PostSourcesRequestBodySourceOrder'Items'Type'
PostSourcesRequestBodySourceOrder'Items'Type'EnumTax
            | Bool
GHC.Base.otherwise -> Value -> PostSourcesRequestBodySourceOrder'Items'Type'
PostSourcesRequestBodySourceOrder'Items'Type'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.source_order.properties.shipping@ in the specification.
data PostSourcesRequestBodySourceOrder'Shipping' = PostSourcesRequestBodySourceOrder'Shipping'
  { -- | address
    PostSourcesRequestBodySourceOrder'Shipping'
-> PostSourcesRequestBodySourceOrder'Shipping'Address'
postSourcesRequestBodySourceOrder'Shipping'Address :: PostSourcesRequestBodySourceOrder'Shipping'Address',
    -- | carrier
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Carrier :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | phone
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | tracking_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'TrackingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PostSourcesRequestBodySourceOrder'Shipping' -> ShowS
[PostSourcesRequestBodySourceOrder'Shipping'] -> ShowS
PostSourcesRequestBodySourceOrder'Shipping' -> String
(Int -> PostSourcesRequestBodySourceOrder'Shipping' -> ShowS)
-> (PostSourcesRequestBodySourceOrder'Shipping' -> String)
-> ([PostSourcesRequestBodySourceOrder'Shipping'] -> ShowS)
-> Show PostSourcesRequestBodySourceOrder'Shipping'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodySourceOrder'Shipping'] -> ShowS
$cshowList :: [PostSourcesRequestBodySourceOrder'Shipping'] -> ShowS
show :: PostSourcesRequestBodySourceOrder'Shipping' -> String
$cshow :: PostSourcesRequestBodySourceOrder'Shipping' -> String
showsPrec :: Int -> PostSourcesRequestBodySourceOrder'Shipping' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodySourceOrder'Shipping' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodySourceOrder'Shipping'
-> PostSourcesRequestBodySourceOrder'Shipping' -> Bool
(PostSourcesRequestBodySourceOrder'Shipping'
 -> PostSourcesRequestBodySourceOrder'Shipping' -> Bool)
-> (PostSourcesRequestBodySourceOrder'Shipping'
    -> PostSourcesRequestBodySourceOrder'Shipping' -> Bool)
-> Eq PostSourcesRequestBodySourceOrder'Shipping'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodySourceOrder'Shipping'
-> PostSourcesRequestBodySourceOrder'Shipping' -> Bool
$c/= :: PostSourcesRequestBodySourceOrder'Shipping'
-> PostSourcesRequestBodySourceOrder'Shipping' -> Bool
== :: PostSourcesRequestBodySourceOrder'Shipping'
-> PostSourcesRequestBodySourceOrder'Shipping' -> Bool
$c== :: PostSourcesRequestBodySourceOrder'Shipping'
-> PostSourcesRequestBodySourceOrder'Shipping' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodySourceOrder'Shipping' where
  toJSON :: PostSourcesRequestBodySourceOrder'Shipping' -> Value
toJSON PostSourcesRequestBodySourceOrder'Shipping'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text -> PostSourcesRequestBodySourceOrder'Shipping'Address' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Shipping'
-> PostSourcesRequestBodySourceOrder'Shipping'Address'
postSourcesRequestBodySourceOrder'Shipping'Address PostSourcesRequestBodySourceOrder'Shipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"carrier" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Carrier PostSourcesRequestBodySourceOrder'Shipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Name PostSourcesRequestBodySourceOrder'Shipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"phone" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Phone PostSourcesRequestBodySourceOrder'Shipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tracking_number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'TrackingNumber PostSourcesRequestBodySourceOrder'Shipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSourcesRequestBodySourceOrder'Shipping' -> Encoding
toEncoding PostSourcesRequestBodySourceOrder'Shipping'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text
-> PostSourcesRequestBodySourceOrder'Shipping'Address' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Shipping'
-> PostSourcesRequestBodySourceOrder'Shipping'Address'
postSourcesRequestBodySourceOrder'Shipping'Address PostSourcesRequestBodySourceOrder'Shipping'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"carrier" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Carrier PostSourcesRequestBodySourceOrder'Shipping'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Name PostSourcesRequestBodySourceOrder'Shipping'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"phone" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Phone PostSourcesRequestBodySourceOrder'Shipping'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tracking_number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSourcesRequestBodySourceOrder'Shipping' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'TrackingNumber PostSourcesRequestBodySourceOrder'Shipping'
obj)))))

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

-- | Create a new 'PostSourcesRequestBodySourceOrder'Shipping'' with all required fields.
mkPostSourcesRequestBodySourceOrder'Shipping' ::
  -- | 'postSourcesRequestBodySourceOrder'Shipping'Address'
  PostSourcesRequestBodySourceOrder'Shipping'Address' ->
  PostSourcesRequestBodySourceOrder'Shipping'
mkPostSourcesRequestBodySourceOrder'Shipping' :: PostSourcesRequestBodySourceOrder'Shipping'Address'
-> PostSourcesRequestBodySourceOrder'Shipping'
mkPostSourcesRequestBodySourceOrder'Shipping' PostSourcesRequestBodySourceOrder'Shipping'Address'
postSourcesRequestBodySourceOrder'Shipping'Address =
  PostSourcesRequestBodySourceOrder'Shipping' :: PostSourcesRequestBodySourceOrder'Shipping'Address'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PostSourcesRequestBodySourceOrder'Shipping'
PostSourcesRequestBodySourceOrder'Shipping'
    { postSourcesRequestBodySourceOrder'Shipping'Address :: PostSourcesRequestBodySourceOrder'Shipping'Address'
postSourcesRequestBodySourceOrder'Shipping'Address = PostSourcesRequestBodySourceOrder'Shipping'Address'
postSourcesRequestBodySourceOrder'Shipping'Address,
      postSourcesRequestBodySourceOrder'Shipping'Carrier :: Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Carrier = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Shipping'Name :: Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Shipping'Phone :: Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Phone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Shipping'TrackingNumber :: Maybe Text
postSourcesRequestBodySourceOrder'Shipping'TrackingNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.source_order.properties.shipping.properties.address@ in the specification.
data PostSourcesRequestBodySourceOrder'Shipping'Address' = PostSourcesRequestBodySourceOrder'Shipping'Address'
  { -- | city
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Shipping'Address' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Address'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Shipping'Address' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Address'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Shipping'Address' -> Text
postSourcesRequestBodySourceOrder'Shipping'Address'Line1 :: Data.Text.Internal.Text,
    -- | line2
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Shipping'Address' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Address'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Shipping'Address' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Address'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSourcesRequestBodySourceOrder'Shipping'Address' -> Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Address'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PostSourcesRequestBodySourceOrder'Shipping'Address' -> ShowS
[PostSourcesRequestBodySourceOrder'Shipping'Address'] -> ShowS
PostSourcesRequestBodySourceOrder'Shipping'Address' -> String
(Int
 -> PostSourcesRequestBodySourceOrder'Shipping'Address' -> ShowS)
-> (PostSourcesRequestBodySourceOrder'Shipping'Address' -> String)
-> ([PostSourcesRequestBodySourceOrder'Shipping'Address'] -> ShowS)
-> Show PostSourcesRequestBodySourceOrder'Shipping'Address'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodySourceOrder'Shipping'Address'] -> ShowS
$cshowList :: [PostSourcesRequestBodySourceOrder'Shipping'Address'] -> ShowS
show :: PostSourcesRequestBodySourceOrder'Shipping'Address' -> String
$cshow :: PostSourcesRequestBodySourceOrder'Shipping'Address' -> String
showsPrec :: Int -> PostSourcesRequestBodySourceOrder'Shipping'Address' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodySourceOrder'Shipping'Address' -> ShowS
GHC.Show.Show,
      PostSourcesRequestBodySourceOrder'Shipping'Address'
-> PostSourcesRequestBodySourceOrder'Shipping'Address' -> Bool
(PostSourcesRequestBodySourceOrder'Shipping'Address'
 -> PostSourcesRequestBodySourceOrder'Shipping'Address' -> Bool)
-> (PostSourcesRequestBodySourceOrder'Shipping'Address'
    -> PostSourcesRequestBodySourceOrder'Shipping'Address' -> Bool)
-> Eq PostSourcesRequestBodySourceOrder'Shipping'Address'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodySourceOrder'Shipping'Address'
-> PostSourcesRequestBodySourceOrder'Shipping'Address' -> Bool
$c/= :: PostSourcesRequestBodySourceOrder'Shipping'Address'
-> PostSourcesRequestBodySourceOrder'Shipping'Address' -> Bool
== :: PostSourcesRequestBodySourceOrder'Shipping'Address'
-> PostSourcesRequestBodySourceOrder'Shipping'Address' -> Bool
$c== :: PostSourcesRequestBodySourceOrder'Shipping'Address'
-> PostSourcesRequestBodySourceOrder'Shipping'Address' -> Bool
GHC.Classes.Eq
    )

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodySourceOrder'Shipping'Address' where
  parseJSON :: Value -> Parser PostSourcesRequestBodySourceOrder'Shipping'Address'
parseJSON = String
-> (Object
    -> Parser PostSourcesRequestBodySourceOrder'Shipping'Address')
-> Value
-> Parser PostSourcesRequestBodySourceOrder'Shipping'Address'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSourcesRequestBodySourceOrder'Shipping'Address'" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> PostSourcesRequestBodySourceOrder'Shipping'Address')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PostSourcesRequestBodySourceOrder'Shipping'Address')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PostSourcesRequestBodySourceOrder'Shipping'Address'
PostSourcesRequestBodySourceOrder'Shipping'Address' Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PostSourcesRequestBodySourceOrder'Shipping'Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PostSourcesRequestBodySourceOrder'Shipping'Address')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"city")) Parser
  (Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PostSourcesRequestBodySourceOrder'Shipping'Address')
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PostSourcesRequestBodySourceOrder'Shipping'Address')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"country")) Parser
  (Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PostSourcesRequestBodySourceOrder'Shipping'Address')
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PostSourcesRequestBodySourceOrder'Shipping'Address')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"line1")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PostSourcesRequestBodySourceOrder'Shipping'Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> PostSourcesRequestBodySourceOrder'Shipping'Address')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"line2")) Parser
  (Maybe Text
   -> Maybe Text
   -> PostSourcesRequestBodySourceOrder'Shipping'Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> PostSourcesRequestBodySourceOrder'Shipping'Address')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"postal_code")) Parser
  (Maybe Text -> PostSourcesRequestBodySourceOrder'Shipping'Address')
-> Parser (Maybe Text)
-> Parser PostSourcesRequestBodySourceOrder'Shipping'Address'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"state"))

-- | Create a new 'PostSourcesRequestBodySourceOrder'Shipping'Address'' with all required fields.
mkPostSourcesRequestBodySourceOrder'Shipping'Address' ::
  -- | 'postSourcesRequestBodySourceOrder'Shipping'Address'Line1'
  Data.Text.Internal.Text ->
  PostSourcesRequestBodySourceOrder'Shipping'Address'
mkPostSourcesRequestBodySourceOrder'Shipping'Address' :: Text -> PostSourcesRequestBodySourceOrder'Shipping'Address'
mkPostSourcesRequestBodySourceOrder'Shipping'Address' Text
postSourcesRequestBodySourceOrder'Shipping'Address'Line1 =
  PostSourcesRequestBodySourceOrder'Shipping'Address' :: Maybe Text
-> Maybe Text
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PostSourcesRequestBodySourceOrder'Shipping'Address'
PostSourcesRequestBodySourceOrder'Shipping'Address'
    { postSourcesRequestBodySourceOrder'Shipping'Address'City :: Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Address'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Shipping'Address'Country :: Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Address'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Shipping'Address'Line1 :: Text
postSourcesRequestBodySourceOrder'Shipping'Address'Line1 = Text
postSourcesRequestBodySourceOrder'Shipping'Address'Line1,
      postSourcesRequestBodySourceOrder'Shipping'Address'Line2 :: Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Address'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Shipping'Address'PostalCode :: Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Address'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSourcesRequestBodySourceOrder'Shipping'Address'State :: Maybe Text
postSourcesRequestBodySourceOrder'Shipping'Address'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/sources.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.usage@ in the specification.
data PostSourcesRequestBodyUsage'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSourcesRequestBodyUsage'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.
    PostSourcesRequestBodyUsage'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"reusable"@
    PostSourcesRequestBodyUsage'EnumReusable
  | -- | Represents the JSON value @"single_use"@
    PostSourcesRequestBodyUsage'EnumSingleUse
  deriving (Int -> PostSourcesRequestBodyUsage' -> ShowS
[PostSourcesRequestBodyUsage'] -> ShowS
PostSourcesRequestBodyUsage' -> String
(Int -> PostSourcesRequestBodyUsage' -> ShowS)
-> (PostSourcesRequestBodyUsage' -> String)
-> ([PostSourcesRequestBodyUsage'] -> ShowS)
-> Show PostSourcesRequestBodyUsage'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSourcesRequestBodyUsage'] -> ShowS
$cshowList :: [PostSourcesRequestBodyUsage'] -> ShowS
show :: PostSourcesRequestBodyUsage' -> String
$cshow :: PostSourcesRequestBodyUsage' -> String
showsPrec :: Int -> PostSourcesRequestBodyUsage' -> ShowS
$cshowsPrec :: Int -> PostSourcesRequestBodyUsage' -> ShowS
GHC.Show.Show, PostSourcesRequestBodyUsage'
-> PostSourcesRequestBodyUsage' -> Bool
(PostSourcesRequestBodyUsage'
 -> PostSourcesRequestBodyUsage' -> Bool)
-> (PostSourcesRequestBodyUsage'
    -> PostSourcesRequestBodyUsage' -> Bool)
-> Eq PostSourcesRequestBodyUsage'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSourcesRequestBodyUsage'
-> PostSourcesRequestBodyUsage' -> Bool
$c/= :: PostSourcesRequestBodyUsage'
-> PostSourcesRequestBodyUsage' -> Bool
== :: PostSourcesRequestBodyUsage'
-> PostSourcesRequestBodyUsage' -> Bool
$c== :: PostSourcesRequestBodyUsage'
-> PostSourcesRequestBodyUsage' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSourcesRequestBodyUsage' where
  toJSON :: PostSourcesRequestBodyUsage' -> Value
toJSON (PostSourcesRequestBodyUsage'Other Value
val) = Value
val
  toJSON (PostSourcesRequestBodyUsage'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSourcesRequestBodyUsage'
PostSourcesRequestBodyUsage'EnumReusable) = Value
"reusable"
  toJSON (PostSourcesRequestBodyUsage'
PostSourcesRequestBodyUsage'EnumSingleUse) = Value
"single_use"

instance Data.Aeson.Types.FromJSON.FromJSON PostSourcesRequestBodyUsage' where
  parseJSON :: Value -> Parser PostSourcesRequestBodyUsage'
parseJSON Value
val =
    PostSourcesRequestBodyUsage' -> Parser PostSourcesRequestBodyUsage'
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
"reusable" -> PostSourcesRequestBodyUsage'
PostSourcesRequestBodyUsage'EnumReusable
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"single_use" -> PostSourcesRequestBodyUsage'
PostSourcesRequestBodyUsage'EnumSingleUse
            | Bool
GHC.Base.otherwise -> Value -> PostSourcesRequestBodyUsage'
PostSourcesRequestBodyUsage'Other Value
val
      )

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