{-# 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 postIdentityVerificationSessionsSession
module StripeAPI.Operations.PostIdentityVerificationSessionsSession 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/identity/verification_sessions/{session}
--
-- \<p>Updates a VerificationSession object.\<\/p>
--
-- \<p>When the session status is \<code>requires_input\<\/code>, you can use this method to update the
-- verification check and options.\<\/p>
postIdentityVerificationSessionsSession ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | session | Constraints: Maximum length of 5000
  Data.Text.Internal.Text ->
  -- | The request body to send
  GHC.Maybe.Maybe PostIdentityVerificationSessionsSessionRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.StripeT m (Network.HTTP.Client.Types.Response PostIdentityVerificationSessionsSessionResponse)
postIdentityVerificationSessionsSession :: Text
-> Maybe PostIdentityVerificationSessionsSessionRequestBody
-> StripeT
     m (Response PostIdentityVerificationSessionsSessionResponse)
postIdentityVerificationSessionsSession
  Text
session
  Maybe PostIdentityVerificationSessionsSessionRequestBody
body =
    (Response ByteString
 -> Response PostIdentityVerificationSessionsSessionResponse)
-> StripeT m (Response ByteString)
-> StripeT
     m (Response PostIdentityVerificationSessionsSessionResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
      ( \Response ByteString
response_0 ->
          (ByteString -> PostIdentityVerificationSessionsSessionResponse)
-> Response ByteString
-> Response PostIdentityVerificationSessionsSessionResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
            ( (String -> PostIdentityVerificationSessionsSessionResponse)
-> (PostIdentityVerificationSessionsSessionResponse
    -> PostIdentityVerificationSessionsSessionResponse)
-> Either String PostIdentityVerificationSessionsSessionResponse
-> PostIdentityVerificationSessionsSessionResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> PostIdentityVerificationSessionsSessionResponse
PostIdentityVerificationSessionsSessionResponseError PostIdentityVerificationSessionsSessionResponse
-> PostIdentityVerificationSessionsSessionResponse
forall a. a -> a
GHC.Base.id
                (Either String PostIdentityVerificationSessionsSessionResponse
 -> PostIdentityVerificationSessionsSessionResponse)
-> (ByteString
    -> Either String PostIdentityVerificationSessionsSessionResponse)
-> ByteString
-> PostIdentityVerificationSessionsSessionResponse
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) ->
                                     Identity'verificationSession
-> PostIdentityVerificationSessionsSessionResponse
PostIdentityVerificationSessionsSessionResponse200
                                       (Identity'verificationSession
 -> PostIdentityVerificationSessionsSessionResponse)
-> Either String Identity'verificationSession
-> Either String PostIdentityVerificationSessionsSessionResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String Identity'verificationSession
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                            Data.Either.Either
                                                              GHC.Base.String
                                                              Identity'verificationSession
                                                        )
                                   | 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 -> PostIdentityVerificationSessionsSessionResponse
PostIdentityVerificationSessionsSessionResponseDefault
                                       (Error -> PostIdentityVerificationSessionsSessionResponse)
-> Either String Error
-> Either String PostIdentityVerificationSessionsSessionResponse
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 PostIdentityVerificationSessionsSessionResponse
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 PostIdentityVerificationSessionsSessionRequestBody
-> 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/identity/verification_sessions/" String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (ByteString -> String
Data.ByteString.Char8.unpack (Bool -> ByteString -> ByteString
Network.HTTP.Types.URI.urlEncode Bool
GHC.Types.True (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ (String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> String -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ Text -> String
forall a. StringifyModel a => a -> String
StripeAPI.Common.stringifyModel Text
session)) String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ String
""))) [QueryParameter]
forall a. Monoid a => a
GHC.Base.mempty Maybe PostIdentityVerificationSessionsSessionRequestBody
body RequestBodyEncoding
StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/identity\/verification_sessions\/{session}.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostIdentityVerificationSessionsSessionRequestBody = PostIdentityVerificationSessionsSessionRequestBody
  { -- | expand: Specifies which fields in the response should be expanded.
    PostIdentityVerificationSessionsSessionRequestBody -> Maybe [Text]
postIdentityVerificationSessionsSessionRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`.
    PostIdentityVerificationSessionsSessionRequestBody -> Maybe Object
postIdentityVerificationSessionsSessionRequestBodyMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | options: A set of options for the session’s verification checks.
    PostIdentityVerificationSessionsSessionRequestBody
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
postIdentityVerificationSessionsSessionRequestBodyOptions :: (GHC.Maybe.Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'),
    -- | type: The type of [verification check](https:\/\/stripe.com\/docs\/identity\/verification-checks) to be performed.
    PostIdentityVerificationSessionsSessionRequestBody
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
postIdentityVerificationSessionsSessionRequestBodyType :: (GHC.Maybe.Maybe PostIdentityVerificationSessionsSessionRequestBodyType')
  }
  deriving
    ( Int
-> PostIdentityVerificationSessionsSessionRequestBody
-> String
-> String
[PostIdentityVerificationSessionsSessionRequestBody]
-> String -> String
PostIdentityVerificationSessionsSessionRequestBody -> String
(Int
 -> PostIdentityVerificationSessionsSessionRequestBody
 -> String
 -> String)
-> (PostIdentityVerificationSessionsSessionRequestBody -> String)
-> ([PostIdentityVerificationSessionsSessionRequestBody]
    -> String -> String)
-> Show PostIdentityVerificationSessionsSessionRequestBody
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostIdentityVerificationSessionsSessionRequestBody]
-> String -> String
$cshowList :: [PostIdentityVerificationSessionsSessionRequestBody]
-> String -> String
show :: PostIdentityVerificationSessionsSessionRequestBody -> String
$cshow :: PostIdentityVerificationSessionsSessionRequestBody -> String
showsPrec :: Int
-> PostIdentityVerificationSessionsSessionRequestBody
-> String
-> String
$cshowsPrec :: Int
-> PostIdentityVerificationSessionsSessionRequestBody
-> String
-> String
GHC.Show.Show,
      PostIdentityVerificationSessionsSessionRequestBody
-> PostIdentityVerificationSessionsSessionRequestBody -> Bool
(PostIdentityVerificationSessionsSessionRequestBody
 -> PostIdentityVerificationSessionsSessionRequestBody -> Bool)
-> (PostIdentityVerificationSessionsSessionRequestBody
    -> PostIdentityVerificationSessionsSessionRequestBody -> Bool)
-> Eq PostIdentityVerificationSessionsSessionRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostIdentityVerificationSessionsSessionRequestBody
-> PostIdentityVerificationSessionsSessionRequestBody -> Bool
$c/= :: PostIdentityVerificationSessionsSessionRequestBody
-> PostIdentityVerificationSessionsSessionRequestBody -> Bool
== :: PostIdentityVerificationSessionsSessionRequestBody
-> PostIdentityVerificationSessionsSessionRequestBody -> Bool
$c== :: PostIdentityVerificationSessionsSessionRequestBody
-> PostIdentityVerificationSessionsSessionRequestBody -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostIdentityVerificationSessionsSessionRequestBody where
  toJSON :: PostIdentityVerificationSessionsSessionRequestBody -> Value
toJSON PostIdentityVerificationSessionsSessionRequestBody
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"expand" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBody -> Maybe [Text]
postIdentityVerificationSessionsSessionRequestBodyExpand PostIdentityVerificationSessionsSessionRequestBody
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..= PostIdentityVerificationSessionsSessionRequestBody -> Maybe Object
postIdentityVerificationSessionsSessionRequestBodyMetadata PostIdentityVerificationSessionsSessionRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"options" Text
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBody
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
postIdentityVerificationSessionsSessionRequestBodyOptions PostIdentityVerificationSessionsSessionRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBody
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
postIdentityVerificationSessionsSessionRequestBodyType PostIdentityVerificationSessionsSessionRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostIdentityVerificationSessionsSessionRequestBody -> Encoding
toEncoding PostIdentityVerificationSessionsSessionRequestBody
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"expand" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBody -> Maybe [Text]
postIdentityVerificationSessionsSessionRequestBodyExpand PostIdentityVerificationSessionsSessionRequestBody
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..= PostIdentityVerificationSessionsSessionRequestBody -> Maybe Object
postIdentityVerificationSessionsSessionRequestBodyMetadata PostIdentityVerificationSessionsSessionRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"options" Text
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBody
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
postIdentityVerificationSessionsSessionRequestBodyOptions PostIdentityVerificationSessionsSessionRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"type" Text
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBody
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
postIdentityVerificationSessionsSessionRequestBodyType PostIdentityVerificationSessionsSessionRequestBody
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON PostIdentityVerificationSessionsSessionRequestBody where
  parseJSON :: Value -> Parser PostIdentityVerificationSessionsSessionRequestBody
parseJSON = String
-> (Object
    -> Parser PostIdentityVerificationSessionsSessionRequestBody)
-> Value
-> Parser PostIdentityVerificationSessionsSessionRequestBody
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostIdentityVerificationSessionsSessionRequestBody" (\Object
obj -> ((((Maybe [Text]
 -> Maybe Object
 -> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
 -> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
 -> PostIdentityVerificationSessionsSessionRequestBody)
-> Parser
     (Maybe [Text]
      -> Maybe Object
      -> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
      -> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
      -> PostIdentityVerificationSessionsSessionRequestBody)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe [Text]
-> Maybe Object
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
-> PostIdentityVerificationSessionsSessionRequestBody
PostIdentityVerificationSessionsSessionRequestBody Parser
  (Maybe [Text]
   -> Maybe Object
   -> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
   -> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
   -> PostIdentityVerificationSessionsSessionRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Object
      -> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
      -> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
      -> PostIdentityVerificationSessionsSessionRequestBody)
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 Object
   -> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
   -> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
   -> PostIdentityVerificationSessionsSessionRequestBody)
-> Parser (Maybe Object)
-> Parser
     (Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
      -> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
      -> PostIdentityVerificationSessionsSessionRequestBody)
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 PostIdentityVerificationSessionsSessionRequestBodyOptions'
   -> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
   -> PostIdentityVerificationSessionsSessionRequestBody)
-> Parser
     (Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions')
-> Parser
     (Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
      -> PostIdentityVerificationSessionsSessionRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"options")) Parser
  (Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
   -> PostIdentityVerificationSessionsSessionRequestBody)
-> Parser
     (Maybe PostIdentityVerificationSessionsSessionRequestBodyType')
-> Parser PostIdentityVerificationSessionsSessionRequestBody
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostIdentityVerificationSessionsSessionRequestBodyType')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"type"))

-- | Create a new 'PostIdentityVerificationSessionsSessionRequestBody' with all required fields.
mkPostIdentityVerificationSessionsSessionRequestBody :: PostIdentityVerificationSessionsSessionRequestBody
mkPostIdentityVerificationSessionsSessionRequestBody :: PostIdentityVerificationSessionsSessionRequestBody
mkPostIdentityVerificationSessionsSessionRequestBody =
  PostIdentityVerificationSessionsSessionRequestBody :: Maybe [Text]
-> Maybe Object
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
-> PostIdentityVerificationSessionsSessionRequestBody
PostIdentityVerificationSessionsSessionRequestBody
    { postIdentityVerificationSessionsSessionRequestBodyExpand :: Maybe [Text]
postIdentityVerificationSessionsSessionRequestBodyExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postIdentityVerificationSessionsSessionRequestBodyMetadata :: Maybe Object
postIdentityVerificationSessionsSessionRequestBodyMetadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postIdentityVerificationSessionsSessionRequestBodyOptions :: Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
postIdentityVerificationSessionsSessionRequestBodyOptions = Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'
forall a. Maybe a
GHC.Maybe.Nothing,
      postIdentityVerificationSessionsSessionRequestBodyType :: Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
postIdentityVerificationSessionsSessionRequestBodyType = Maybe PostIdentityVerificationSessionsSessionRequestBodyType'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/identity\/verification_sessions\/{session}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.options@ in the specification.
--
-- A set of options for the session’s verification checks.
data PostIdentityVerificationSessionsSessionRequestBodyOptions' = PostIdentityVerificationSessionsSessionRequestBodyOptions'
  { -- | document
    PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> Maybe
     PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'Variants
postIdentityVerificationSessionsSessionRequestBodyOptions'Document :: (GHC.Maybe.Maybe PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'Variants)
  }
  deriving
    ( Int
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> String
-> String
[PostIdentityVerificationSessionsSessionRequestBodyOptions']
-> String -> String
PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> String
(Int
 -> PostIdentityVerificationSessionsSessionRequestBodyOptions'
 -> String
 -> String)
-> (PostIdentityVerificationSessionsSessionRequestBodyOptions'
    -> String)
-> ([PostIdentityVerificationSessionsSessionRequestBodyOptions']
    -> String -> String)
-> Show PostIdentityVerificationSessionsSessionRequestBodyOptions'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostIdentityVerificationSessionsSessionRequestBodyOptions']
-> String -> String
$cshowList :: [PostIdentityVerificationSessionsSessionRequestBodyOptions']
-> String -> String
show :: PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> String
$cshow :: PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> String
showsPrec :: Int
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> String
-> String
$cshowsPrec :: Int
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> String
-> String
GHC.Show.Show,
      PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> Bool
(PostIdentityVerificationSessionsSessionRequestBodyOptions'
 -> PostIdentityVerificationSessionsSessionRequestBodyOptions'
 -> Bool)
-> (PostIdentityVerificationSessionsSessionRequestBodyOptions'
    -> PostIdentityVerificationSessionsSessionRequestBodyOptions'
    -> Bool)
-> Eq PostIdentityVerificationSessionsSessionRequestBodyOptions'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> Bool
$c/= :: PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> Bool
== :: PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> Bool
$c== :: PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'
-> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostIdentityVerificationSessionsSessionRequestBodyOptions'' with all required fields.
mkPostIdentityVerificationSessionsSessionRequestBodyOptions' :: PostIdentityVerificationSessionsSessionRequestBodyOptions'
mkPostIdentityVerificationSessionsSessionRequestBodyOptions' :: PostIdentityVerificationSessionsSessionRequestBodyOptions'
mkPostIdentityVerificationSessionsSessionRequestBodyOptions' = PostIdentityVerificationSessionsSessionRequestBodyOptions' :: Maybe
  PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'Variants
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'
PostIdentityVerificationSessionsSessionRequestBodyOptions' {postIdentityVerificationSessionsSessionRequestBodyOptions'Document :: Maybe
  PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'Variants
postIdentityVerificationSessionsSessionRequestBodyOptions'Document = Maybe
  PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'Variants
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the object schema located at @paths.\/v1\/identity\/verification_sessions\/{session}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.options.properties.document.anyOf@ in the specification.
data PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1 = PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
  { -- | allowed_types
    PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe
     [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes :: (GHC.Maybe.Maybe ([PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'])),
    -- | require_id_number
    PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireIdNumber :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | require_live_capture
    PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireLiveCapture :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | require_matching_selfie
    PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireMatchingSelfie :: (GHC.Maybe.Maybe GHC.Types.Bool)
  }
  deriving
    ( Int
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> String
-> String
[PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1]
-> String -> String
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> String
(Int
 -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
 -> String
 -> String)
-> (PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
    -> String)
-> ([PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1]
    -> String -> String)
-> Show
     PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1]
-> String -> String
$cshowList :: [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1]
-> String -> String
show :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> String
$cshow :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> String
showsPrec :: Int
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> String
-> String
GHC.Show.Show,
      PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Bool
(PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
 -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
 -> Bool)
-> (PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
    -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
    -> Bool)
-> Eq
     PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Bool
$c/= :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Bool
== :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Bool
$c== :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1 where
  toJSON :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Value
toJSON PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"allowed_types" Text
-> Maybe
     [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe
     [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"require_id_number" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireIdNumber PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"require_live_capture" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireLiveCapture PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"require_matching_selfie" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireMatchingSelfie PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Encoding
toEncoding PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"allowed_types" Text
-> Maybe
     [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe
     [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"require_id_number" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireIdNumber PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"require_live_capture" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireLiveCapture PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"require_matching_selfie" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
-> Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireMatchingSelfie PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1 where
  parseJSON :: Value
-> Parser
     PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1)
-> Value
-> Parser
     PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1" (\Object
obj -> ((((Maybe
   [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Bool
 -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1)
-> Parser
     (Maybe
        [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1 Parser
  (Maybe
     [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1)
-> Parser
     (Maybe
        [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'])
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Bool
      -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"allowed_types")) Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Bool
   -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"require_id_number")) Parser
  (Maybe Bool
   -> Maybe Bool
   -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"require_live_capture")) Parser
  (Maybe Bool
   -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1)
-> Parser (Maybe Bool)
-> Parser
     PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"require_matching_selfie"))

-- | Create a new 'PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1' with all required fields.
mkPostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1 :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
mkPostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1 :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
mkPostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1 =
  PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1 :: Maybe
  [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1
    { postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes :: Maybe
  [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes = Maybe
  [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
forall a. Maybe a
GHC.Maybe.Nothing,
      postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireIdNumber :: Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireIdNumber = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireLiveCapture :: Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireLiveCapture = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireMatchingSelfie :: Maybe Bool
postIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1RequireMatchingSelfie = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/identity\/verification_sessions\/{session}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.options.properties.document.anyOf.properties.allowed_types.items@ in the specification.
data PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'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.
    PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"driving_license"@
    PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'EnumDrivingLicense
  | -- | Represents the JSON value @"id_card"@
    PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'EnumIdCard
  | -- | Represents the JSON value @"passport"@
    PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'EnumPassport
  deriving (Int
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> String
-> String
[PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
-> String -> String
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> String
(Int
 -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
 -> String
 -> String)
-> (PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
    -> String)
-> ([PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
    -> String -> String)
-> Show
     PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
-> String -> String
$cshowList :: [PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes']
-> String -> String
show :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> String
$cshow :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> String
showsPrec :: Int
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> String
-> String
$cshowsPrec :: Int
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> String
-> String
GHC.Show.Show, PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> Bool
(PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
 -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
 -> Bool)
-> (PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
    -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
    -> Bool)
-> Eq
     PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> Bool
$c/= :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> Bool
== :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> Bool
$c== :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes' where
  toJSON :: PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> Value
toJSON (PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'Other Value
val) = Value
val
  toJSON (PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'EnumDrivingLicense) = Value
"driving_license"
  toJSON (PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'EnumIdCard) = Value
"id_card"
  toJSON (PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'EnumPassport) = Value
"passport"

instance Data.Aeson.Types.FromJSON.FromJSON PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes' where
  parseJSON :: Value
-> Parser
     PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
parseJSON Value
val =
    PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
-> Parser
     PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
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
"driving_license" -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'EnumDrivingLicense
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"id_card" -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'EnumIdCard
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"passport" -> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'EnumPassport
            | Bool
GHC.Base.otherwise -> Value
-> PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'
PostIdentityVerificationSessionsSessionRequestBodyOptions'Document'OneOf1AllowedTypes'Other Value
val
      )

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

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

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

-- | Defines the enum schema located at @paths.\/v1\/identity\/verification_sessions\/{session}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.type@ in the specification.
--
-- The type of [verification check](https:\/\/stripe.com\/docs\/identity\/verification-checks) to be performed.
data PostIdentityVerificationSessionsSessionRequestBodyType'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostIdentityVerificationSessionsSessionRequestBodyType'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.
    PostIdentityVerificationSessionsSessionRequestBodyType'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"document"@
    PostIdentityVerificationSessionsSessionRequestBodyType'EnumDocument
  | -- | Represents the JSON value @"id_number"@
    PostIdentityVerificationSessionsSessionRequestBodyType'EnumIdNumber
  deriving (Int
-> PostIdentityVerificationSessionsSessionRequestBodyType'
-> String
-> String
[PostIdentityVerificationSessionsSessionRequestBodyType']
-> String -> String
PostIdentityVerificationSessionsSessionRequestBodyType' -> String
(Int
 -> PostIdentityVerificationSessionsSessionRequestBodyType'
 -> String
 -> String)
-> (PostIdentityVerificationSessionsSessionRequestBodyType'
    -> String)
-> ([PostIdentityVerificationSessionsSessionRequestBodyType']
    -> String -> String)
-> Show PostIdentityVerificationSessionsSessionRequestBodyType'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostIdentityVerificationSessionsSessionRequestBodyType']
-> String -> String
$cshowList :: [PostIdentityVerificationSessionsSessionRequestBodyType']
-> String -> String
show :: PostIdentityVerificationSessionsSessionRequestBodyType' -> String
$cshow :: PostIdentityVerificationSessionsSessionRequestBodyType' -> String
showsPrec :: Int
-> PostIdentityVerificationSessionsSessionRequestBodyType'
-> String
-> String
$cshowsPrec :: Int
-> PostIdentityVerificationSessionsSessionRequestBodyType'
-> String
-> String
GHC.Show.Show, PostIdentityVerificationSessionsSessionRequestBodyType'
-> PostIdentityVerificationSessionsSessionRequestBodyType' -> Bool
(PostIdentityVerificationSessionsSessionRequestBodyType'
 -> PostIdentityVerificationSessionsSessionRequestBodyType' -> Bool)
-> (PostIdentityVerificationSessionsSessionRequestBodyType'
    -> PostIdentityVerificationSessionsSessionRequestBodyType' -> Bool)
-> Eq PostIdentityVerificationSessionsSessionRequestBodyType'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostIdentityVerificationSessionsSessionRequestBodyType'
-> PostIdentityVerificationSessionsSessionRequestBodyType' -> Bool
$c/= :: PostIdentityVerificationSessionsSessionRequestBodyType'
-> PostIdentityVerificationSessionsSessionRequestBodyType' -> Bool
== :: PostIdentityVerificationSessionsSessionRequestBodyType'
-> PostIdentityVerificationSessionsSessionRequestBodyType' -> Bool
$c== :: PostIdentityVerificationSessionsSessionRequestBodyType'
-> PostIdentityVerificationSessionsSessionRequestBodyType' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostIdentityVerificationSessionsSessionRequestBodyType' where
  toJSON :: PostIdentityVerificationSessionsSessionRequestBodyType' -> Value
toJSON (PostIdentityVerificationSessionsSessionRequestBodyType'Other Value
val) = Value
val
  toJSON (PostIdentityVerificationSessionsSessionRequestBodyType'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostIdentityVerificationSessionsSessionRequestBodyType'
PostIdentityVerificationSessionsSessionRequestBodyType'EnumDocument) = Value
"document"
  toJSON (PostIdentityVerificationSessionsSessionRequestBodyType'
PostIdentityVerificationSessionsSessionRequestBodyType'EnumIdNumber) = Value
"id_number"

instance Data.Aeson.Types.FromJSON.FromJSON PostIdentityVerificationSessionsSessionRequestBodyType' where
  parseJSON :: Value
-> Parser PostIdentityVerificationSessionsSessionRequestBodyType'
parseJSON Value
val =
    PostIdentityVerificationSessionsSessionRequestBodyType'
-> Parser PostIdentityVerificationSessionsSessionRequestBodyType'
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
"document" -> PostIdentityVerificationSessionsSessionRequestBodyType'
PostIdentityVerificationSessionsSessionRequestBodyType'EnumDocument
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"id_number" -> PostIdentityVerificationSessionsSessionRequestBodyType'
PostIdentityVerificationSessionsSessionRequestBodyType'EnumIdNumber
            | Bool
GHC.Base.otherwise -> Value -> PostIdentityVerificationSessionsSessionRequestBodyType'
PostIdentityVerificationSessionsSessionRequestBodyType'Other Value
val
      )

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