{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-unused-imports #-}

module OryKratos.Types.Identity
  ( Identity (..),
    UntypedIdentity,
    IdentityCredentials (..),
    IdentityCredentialsOidc (..),
    IdentityCredentialsOidcProvider (..),
    IdentityCredentialsPassword (..),
    IdentityCredentialsType (..),
    IdentitySchema (..),
    IdentityState (..),
  )
where

import Data.Aeson (FromJSON (..), ToJSON (..), Value, genericParseJSON, genericToEncoding, genericToJSON)
import qualified Data.Aeson as Aeson
import Data.Aeson.Types (Options (..), defaultOptions)
import qualified Data.Char as Char
import Data.Data (Data)
import Data.Function ((&))
import Data.List (stripPrefix)
import qualified Data.Map as Map
import Data.Maybe (fromMaybe)
import Data.Set (Set)
import Data.Swagger (ToSchema, declareNamedSchema)
import qualified Data.Swagger as Swagger
import Data.Text (Text)
import qualified Data.Text as T
import Data.Time
import Data.UUID (UUID)
import GHC.Generics (Generic)
import OryKratos.Types.Helper (customOptions, removeFieldLabelPrefix)
import OryKratos.Types.Types
  ( RecoveryAddress,
    VerifiableIdentityAddress,
  )

type UntypedIdentity = Identity Value Value Value

-- | An identity can be a real human, a service, an IoT device - everything that can be described as an \"actor\" in a system.
data Identity traits metadataAdmin metadataPublic = Identity
  { -- | CreatedAt is a helper struct field for gobuffalo.pop.
    Identity traits metadataAdmin metadataPublic -> Maybe UTCTime
created_at :: Maybe UTCTime,
    -- | Credentials represents all credentials that can be used for authenticating this identity.
    Identity traits metadataAdmin metadataPublic
-> Maybe (Map String IdentityCredentials)
credentials :: Maybe (Map.Map String IdentityCredentials),
    Identity traits metadataAdmin metadataPublic -> UUID
id :: UUID,
    -- | NullJSONRawMessage represents a json.RawMessage that works well with JSON, SQL, and Swagger and is NULLable-
    Identity traits metadataAdmin metadataPublic -> Maybe metadataAdmin
metadata_admin :: Maybe metadataAdmin,
    -- | NullJSONRawMessage represents a json.RawMessage that works well with JSON, SQL, and Swagger and is NULLable-
    Identity traits metadataAdmin metadataPublic
-> Maybe metadataPublic
metadata_public :: Maybe metadataPublic,
    -- | RecoveryAddresses contains all the addresses that can be used to recover an identity.
    Identity traits metadataAdmin metadataPublic
-> Maybe [RecoveryAddress]
recovery_addresses :: Maybe [RecoveryAddress],
    -- | SchemaID is the ID of the JSON Schema to be used for validating the identity's traits.
    Identity traits metadataAdmin metadataPublic -> Text
schema_id :: Text,
    -- | SchemaURL is the URL of the endpoint where the identity's traits schema can be fetched from.  format: url
    Identity traits metadataAdmin metadataPublic -> Text
schema_url :: Text,
    Identity traits metadataAdmin metadataPublic -> Maybe IdentityState
state :: Maybe IdentityState,
    Identity traits metadataAdmin metadataPublic -> Maybe UTCTime
state_changed_at :: Maybe UTCTime,
    -- | Traits represent an identity's traits. The identity is able to create, modify, and delete traits in a self-service manner. The input will always be validated against the JSON Schema defined in `schema_url`.
    Identity traits metadataAdmin metadataPublic -> traits
traits :: traits,
    -- | UpdatedAt is a helper struct field for gobuffalo.pop.
    Identity traits metadataAdmin metadataPublic -> Maybe UTCTime
updated_at :: Maybe UTCTime,
    -- | VerifiableAddresses contains all the addresses that can be verified by the user.
    Identity traits metadataAdmin metadataPublic
-> Maybe [VerifiableIdentityAddress]
verifiable_addresses :: Maybe [VerifiableIdentityAddress]
  }
  deriving stock (Int -> Identity traits metadataAdmin metadataPublic -> ShowS
[Identity traits metadataAdmin metadataPublic] -> ShowS
Identity traits metadataAdmin metadataPublic -> String
(Int -> Identity traits metadataAdmin metadataPublic -> ShowS)
-> (Identity traits metadataAdmin metadataPublic -> String)
-> ([Identity traits metadataAdmin metadataPublic] -> ShowS)
-> Show (Identity traits metadataAdmin metadataPublic)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall traits metadataAdmin metadataPublic.
(Show metadataAdmin, Show metadataPublic, Show traits) =>
Int -> Identity traits metadataAdmin metadataPublic -> ShowS
forall traits metadataAdmin metadataPublic.
(Show metadataAdmin, Show metadataPublic, Show traits) =>
[Identity traits metadataAdmin metadataPublic] -> ShowS
forall traits metadataAdmin metadataPublic.
(Show metadataAdmin, Show metadataPublic, Show traits) =>
Identity traits metadataAdmin metadataPublic -> String
showList :: [Identity traits metadataAdmin metadataPublic] -> ShowS
$cshowList :: forall traits metadataAdmin metadataPublic.
(Show metadataAdmin, Show metadataPublic, Show traits) =>
[Identity traits metadataAdmin metadataPublic] -> ShowS
show :: Identity traits metadataAdmin metadataPublic -> String
$cshow :: forall traits metadataAdmin metadataPublic.
(Show metadataAdmin, Show metadataPublic, Show traits) =>
Identity traits metadataAdmin metadataPublic -> String
showsPrec :: Int -> Identity traits metadataAdmin metadataPublic -> ShowS
$cshowsPrec :: forall traits metadataAdmin metadataPublic.
(Show metadataAdmin, Show metadataPublic, Show traits) =>
Int -> Identity traits metadataAdmin metadataPublic -> ShowS
Show, Identity traits metadataAdmin metadataPublic
-> Identity traits metadataAdmin metadataPublic -> Bool
(Identity traits metadataAdmin metadataPublic
 -> Identity traits metadataAdmin metadataPublic -> Bool)
-> (Identity traits metadataAdmin metadataPublic
    -> Identity traits metadataAdmin metadataPublic -> Bool)
-> Eq (Identity traits metadataAdmin metadataPublic)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall traits metadataAdmin metadataPublic.
(Eq metadataAdmin, Eq metadataPublic, Eq traits) =>
Identity traits metadataAdmin metadataPublic
-> Identity traits metadataAdmin metadataPublic -> Bool
/= :: Identity traits metadataAdmin metadataPublic
-> Identity traits metadataAdmin metadataPublic -> Bool
$c/= :: forall traits metadataAdmin metadataPublic.
(Eq metadataAdmin, Eq metadataPublic, Eq traits) =>
Identity traits metadataAdmin metadataPublic
-> Identity traits metadataAdmin metadataPublic -> Bool
== :: Identity traits metadataAdmin metadataPublic
-> Identity traits metadataAdmin metadataPublic -> Bool
$c== :: forall traits metadataAdmin metadataPublic.
(Eq metadataAdmin, Eq metadataPublic, Eq traits) =>
Identity traits metadataAdmin metadataPublic
-> Identity traits metadataAdmin metadataPublic -> Bool
Eq, (forall x.
 Identity traits metadataAdmin metadataPublic
 -> Rep (Identity traits metadataAdmin metadataPublic) x)
-> (forall x.
    Rep (Identity traits metadataAdmin metadataPublic) x
    -> Identity traits metadataAdmin metadataPublic)
-> Generic (Identity traits metadataAdmin metadataPublic)
forall x.
Rep (Identity traits metadataAdmin metadataPublic) x
-> Identity traits metadataAdmin metadataPublic
forall x.
Identity traits metadataAdmin metadataPublic
-> Rep (Identity traits metadataAdmin metadataPublic) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall traits metadataAdmin metadataPublic x.
Rep (Identity traits metadataAdmin metadataPublic) x
-> Identity traits metadataAdmin metadataPublic
forall traits metadataAdmin metadataPublic x.
Identity traits metadataAdmin metadataPublic
-> Rep (Identity traits metadataAdmin metadataPublic) x
$cto :: forall traits metadataAdmin metadataPublic x.
Rep (Identity traits metadataAdmin metadataPublic) x
-> Identity traits metadataAdmin metadataPublic
$cfrom :: forall traits metadataAdmin metadataPublic x.
Identity traits metadataAdmin metadataPublic
-> Rep (Identity traits metadataAdmin metadataPublic) x
Generic, Typeable (Identity traits metadataAdmin metadataPublic)
DataType
Constr
Typeable (Identity traits metadataAdmin metadataPublic)
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> Identity traits metadataAdmin metadataPublic
    -> c (Identity traits metadataAdmin metadataPublic))
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r)
    -> Constr
    -> c (Identity traits metadataAdmin metadataPublic))
-> (Identity traits metadataAdmin metadataPublic -> Constr)
-> (Identity traits metadataAdmin metadataPublic -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c (Identity traits metadataAdmin metadataPublic)))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c (Identity traits metadataAdmin metadataPublic)))
-> ((forall b. Data b => b -> b)
    -> Identity traits metadataAdmin metadataPublic
    -> Identity traits metadataAdmin metadataPublic)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> Identity traits metadataAdmin metadataPublic
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> Identity traits metadataAdmin metadataPublic
    -> r)
-> (forall u.
    (forall d. Data d => d -> u)
    -> Identity traits metadataAdmin metadataPublic -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u)
    -> Identity traits metadataAdmin metadataPublic
    -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> Identity traits metadataAdmin metadataPublic
    -> m (Identity traits metadataAdmin metadataPublic))
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> Identity traits metadataAdmin metadataPublic
    -> m (Identity traits metadataAdmin metadataPublic))
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> Identity traits metadataAdmin metadataPublic
    -> m (Identity traits metadataAdmin metadataPublic))
-> Data (Identity traits metadataAdmin metadataPublic)
Identity traits metadataAdmin metadataPublic -> DataType
Identity traits metadataAdmin metadataPublic -> Constr
(forall b. Data b => b -> b)
-> Identity traits metadataAdmin metadataPublic
-> Identity traits metadataAdmin metadataPublic
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> Identity traits metadataAdmin metadataPublic
-> c (Identity traits metadataAdmin metadataPublic)
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c (Identity traits metadataAdmin metadataPublic)
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u)
-> Identity traits metadataAdmin metadataPublic
-> u
forall u.
(forall d. Data d => d -> u)
-> Identity traits metadataAdmin metadataPublic -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> Identity traits metadataAdmin metadataPublic
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> Identity traits metadataAdmin metadataPublic
-> r
forall traits metadataAdmin metadataPublic.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
Typeable (Identity traits metadataAdmin metadataPublic)
forall traits metadataAdmin metadataPublic.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
Identity traits metadataAdmin metadataPublic -> DataType
forall traits metadataAdmin metadataPublic.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
Identity traits metadataAdmin metadataPublic -> Constr
forall traits metadataAdmin metadataPublic.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(forall b. Data b => b -> b)
-> Identity traits metadataAdmin metadataPublic
-> Identity traits metadataAdmin metadataPublic
forall traits metadataAdmin metadataPublic u.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
Int
-> (forall d. Data d => d -> u)
-> Identity traits metadataAdmin metadataPublic
-> u
forall traits metadataAdmin metadataPublic u.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(forall d. Data d => d -> u)
-> Identity traits metadataAdmin metadataPublic -> [u]
forall traits metadataAdmin metadataPublic r r'.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> Identity traits metadataAdmin metadataPublic
-> r
forall traits metadataAdmin metadataPublic r r'.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> Identity traits metadataAdmin metadataPublic
-> r
forall traits metadataAdmin metadataPublic (m :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic, Monad m) =>
(forall d. Data d => d -> m d)
-> Identity traits metadataAdmin metadataPublic
-> m (Identity traits metadataAdmin metadataPublic)
forall traits metadataAdmin metadataPublic (m :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic,
 MonadPlus m) =>
(forall d. Data d => d -> m d)
-> Identity traits metadataAdmin metadataPublic
-> m (Identity traits metadataAdmin metadataPublic)
forall traits metadataAdmin metadataPublic (c :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c (Identity traits metadataAdmin metadataPublic)
forall traits metadataAdmin metadataPublic (c :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> Identity traits metadataAdmin metadataPublic
-> c (Identity traits metadataAdmin metadataPublic)
forall traits metadataAdmin metadataPublic (t :: * -> *)
       (c :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic,
 Typeable t) =>
(forall d. Data d => c (t d))
-> Maybe (c (Identity traits metadataAdmin metadataPublic))
forall traits metadataAdmin metadataPublic (t :: * -> * -> *)
       (c :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic,
 Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Identity traits metadataAdmin metadataPublic))
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> Identity traits metadataAdmin metadataPublic
-> m (Identity traits metadataAdmin metadataPublic)
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Identity traits metadataAdmin metadataPublic
-> m (Identity traits metadataAdmin metadataPublic)
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c (Identity traits metadataAdmin metadataPublic)
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> Identity traits metadataAdmin metadataPublic
-> c (Identity traits metadataAdmin metadataPublic)
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c (Identity traits metadataAdmin metadataPublic))
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Identity traits metadataAdmin metadataPublic))
$cIdentity :: Constr
$tIdentity :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> Identity traits metadataAdmin metadataPublic
-> m (Identity traits metadataAdmin metadataPublic)
$cgmapMo :: forall traits metadataAdmin metadataPublic (m :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic,
 MonadPlus m) =>
(forall d. Data d => d -> m d)
-> Identity traits metadataAdmin metadataPublic
-> m (Identity traits metadataAdmin metadataPublic)
gmapMp :: (forall d. Data d => d -> m d)
-> Identity traits metadataAdmin metadataPublic
-> m (Identity traits metadataAdmin metadataPublic)
$cgmapMp :: forall traits metadataAdmin metadataPublic (m :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic,
 MonadPlus m) =>
(forall d. Data d => d -> m d)
-> Identity traits metadataAdmin metadataPublic
-> m (Identity traits metadataAdmin metadataPublic)
gmapM :: (forall d. Data d => d -> m d)
-> Identity traits metadataAdmin metadataPublic
-> m (Identity traits metadataAdmin metadataPublic)
$cgmapM :: forall traits metadataAdmin metadataPublic (m :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic, Monad m) =>
(forall d. Data d => d -> m d)
-> Identity traits metadataAdmin metadataPublic
-> m (Identity traits metadataAdmin metadataPublic)
gmapQi :: Int
-> (forall d. Data d => d -> u)
-> Identity traits metadataAdmin metadataPublic
-> u
$cgmapQi :: forall traits metadataAdmin metadataPublic u.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
Int
-> (forall d. Data d => d -> u)
-> Identity traits metadataAdmin metadataPublic
-> u
gmapQ :: (forall d. Data d => d -> u)
-> Identity traits metadataAdmin metadataPublic -> [u]
$cgmapQ :: forall traits metadataAdmin metadataPublic u.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(forall d. Data d => d -> u)
-> Identity traits metadataAdmin metadataPublic -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> Identity traits metadataAdmin metadataPublic
-> r
$cgmapQr :: forall traits metadataAdmin metadataPublic r r'.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> Identity traits metadataAdmin metadataPublic
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> Identity traits metadataAdmin metadataPublic
-> r
$cgmapQl :: forall traits metadataAdmin metadataPublic r r'.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> Identity traits metadataAdmin metadataPublic
-> r
gmapT :: (forall b. Data b => b -> b)
-> Identity traits metadataAdmin metadataPublic
-> Identity traits metadataAdmin metadataPublic
$cgmapT :: forall traits metadataAdmin metadataPublic.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(forall b. Data b => b -> b)
-> Identity traits metadataAdmin metadataPublic
-> Identity traits metadataAdmin metadataPublic
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Identity traits metadataAdmin metadataPublic))
$cdataCast2 :: forall traits metadataAdmin metadataPublic (t :: * -> * -> *)
       (c :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic,
 Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Identity traits metadataAdmin metadataPublic))
dataCast1 :: (forall d. Data d => c (t d))
-> Maybe (c (Identity traits metadataAdmin metadataPublic))
$cdataCast1 :: forall traits metadataAdmin metadataPublic (t :: * -> *)
       (c :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic,
 Typeable t) =>
(forall d. Data d => c (t d))
-> Maybe (c (Identity traits metadataAdmin metadataPublic))
dataTypeOf :: Identity traits metadataAdmin metadataPublic -> DataType
$cdataTypeOf :: forall traits metadataAdmin metadataPublic.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
Identity traits metadataAdmin metadataPublic -> DataType
toConstr :: Identity traits metadataAdmin metadataPublic -> Constr
$ctoConstr :: forall traits metadataAdmin metadataPublic.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
Identity traits metadataAdmin metadataPublic -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c (Identity traits metadataAdmin metadataPublic)
$cgunfold :: forall traits metadataAdmin metadataPublic (c :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c (Identity traits metadataAdmin metadataPublic)
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> Identity traits metadataAdmin metadataPublic
-> c (Identity traits metadataAdmin metadataPublic)
$cgfoldl :: forall traits metadataAdmin metadataPublic (c :: * -> *).
(Data traits, Data metadataAdmin, Data metadataPublic) =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> Identity traits metadataAdmin metadataPublic
-> c (Identity traits metadataAdmin metadataPublic)
$cp1Data :: forall traits metadataAdmin metadataPublic.
(Data traits, Data metadataAdmin, Data metadataPublic) =>
Typeable (Identity traits metadataAdmin metadataPublic)
Data)

instance
  ( FromJSON traits,
    FromJSON metadataAdmin,
    FromJSON metadataPublic
  ) =>
  FromJSON (Identity traits metadataAdmin metadataPublic)

instance
  ( ToJSON traits,
    ToJSON metadataAdmin,
    ToJSON metadataPublic
  ) =>
  ToJSON (Identity traits metadataAdmin metadataPublic)
  where
  toEncoding :: Identity traits metadataAdmin metadataPublic -> Encoding
toEncoding = Options -> Identity traits metadataAdmin metadataPublic -> Encoding
forall a.
(Generic a, GToJSON' Encoding Zero (Rep a)) =>
Options -> a -> Encoding
genericToEncoding Options
defaultOptions

-- | Credentials represents a specific credential type
data IdentityCredentials = IdentityCredentials
  { IdentityCredentials -> Maybe Value
config :: Maybe Value,
    -- | CreatedAt is a helper struct field for gobuffalo.pop.
    IdentityCredentials -> Maybe UTCTime
created_at :: Maybe UTCTime,
    -- | Identifiers represents a list of unique identifiers this credential type matches.
    IdentityCredentials -> Maybe [Text]
identifiers :: Maybe [Text],
    IdentityCredentials -> Maybe IdentityCredentialsType
_type :: Maybe IdentityCredentialsType,
    -- | UpdatedAt is a helper struct field for gobuffalo.pop.
    IdentityCredentials -> Maybe UTCTime
updated_at :: Maybe UTCTime,
    -- | Version refers to the version of the credential. Useful when changing the config schema.
    IdentityCredentials -> Maybe Integer
version :: Maybe Integer
  }
  deriving stock (Int -> IdentityCredentials -> ShowS
[IdentityCredentials] -> ShowS
IdentityCredentials -> String
(Int -> IdentityCredentials -> ShowS)
-> (IdentityCredentials -> String)
-> ([IdentityCredentials] -> ShowS)
-> Show IdentityCredentials
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IdentityCredentials] -> ShowS
$cshowList :: [IdentityCredentials] -> ShowS
show :: IdentityCredentials -> String
$cshow :: IdentityCredentials -> String
showsPrec :: Int -> IdentityCredentials -> ShowS
$cshowsPrec :: Int -> IdentityCredentials -> ShowS
Show, IdentityCredentials -> IdentityCredentials -> Bool
(IdentityCredentials -> IdentityCredentials -> Bool)
-> (IdentityCredentials -> IdentityCredentials -> Bool)
-> Eq IdentityCredentials
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IdentityCredentials -> IdentityCredentials -> Bool
$c/= :: IdentityCredentials -> IdentityCredentials -> Bool
== :: IdentityCredentials -> IdentityCredentials -> Bool
$c== :: IdentityCredentials -> IdentityCredentials -> Bool
Eq, (forall x. IdentityCredentials -> Rep IdentityCredentials x)
-> (forall x. Rep IdentityCredentials x -> IdentityCredentials)
-> Generic IdentityCredentials
forall x. Rep IdentityCredentials x -> IdentityCredentials
forall x. IdentityCredentials -> Rep IdentityCredentials x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IdentityCredentials x -> IdentityCredentials
$cfrom :: forall x. IdentityCredentials -> Rep IdentityCredentials x
Generic, Typeable IdentityCredentials
DataType
Constr
Typeable IdentityCredentials
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> IdentityCredentials
    -> c IdentityCredentials)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c IdentityCredentials)
-> (IdentityCredentials -> Constr)
-> (IdentityCredentials -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c IdentityCredentials))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IdentityCredentials))
-> ((forall b. Data b => b -> b)
    -> IdentityCredentials -> IdentityCredentials)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> IdentityCredentials -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> IdentityCredentials -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> IdentityCredentials -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> IdentityCredentials -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentials -> m IdentityCredentials)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentials -> m IdentityCredentials)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentials -> m IdentityCredentials)
-> Data IdentityCredentials
IdentityCredentials -> DataType
IdentityCredentials -> Constr
(forall b. Data b => b -> b)
-> IdentityCredentials -> IdentityCredentials
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentials
-> c IdentityCredentials
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentials
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> IdentityCredentials -> u
forall u.
(forall d. Data d => d -> u) -> IdentityCredentials -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityCredentials -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityCredentials -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentityCredentials -> m IdentityCredentials
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentials -> m IdentityCredentials
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentials
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentials
-> c IdentityCredentials
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IdentityCredentials)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentials)
$cIdentityCredentials :: Constr
$tIdentityCredentials :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> IdentityCredentials -> m IdentityCredentials
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentials -> m IdentityCredentials
gmapMp :: (forall d. Data d => d -> m d)
-> IdentityCredentials -> m IdentityCredentials
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentials -> m IdentityCredentials
gmapM :: (forall d. Data d => d -> m d)
-> IdentityCredentials -> m IdentityCredentials
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentityCredentials -> m IdentityCredentials
gmapQi :: Int -> (forall d. Data d => d -> u) -> IdentityCredentials -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> IdentityCredentials -> u
gmapQ :: (forall d. Data d => d -> u) -> IdentityCredentials -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> IdentityCredentials -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityCredentials -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityCredentials -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityCredentials -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityCredentials -> r
gmapT :: (forall b. Data b => b -> b)
-> IdentityCredentials -> IdentityCredentials
$cgmapT :: (forall b. Data b => b -> b)
-> IdentityCredentials -> IdentityCredentials
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentials)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentials)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c IdentityCredentials)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IdentityCredentials)
dataTypeOf :: IdentityCredentials -> DataType
$cdataTypeOf :: IdentityCredentials -> DataType
toConstr :: IdentityCredentials -> Constr
$ctoConstr :: IdentityCredentials -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentials
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentials
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentials
-> c IdentityCredentials
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentials
-> c IdentityCredentials
$cp1Data :: Typeable IdentityCredentials
Data)

instance FromJSON IdentityCredentials where
  parseJSON :: Value -> Parser IdentityCredentials
parseJSON = Options -> Value -> Parser IdentityCredentials
forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON Options
customOptions

instance ToJSON IdentityCredentials where
  toJSON :: IdentityCredentials -> Value
toJSON = Options -> IdentityCredentials -> Value
forall a.
(Generic a, GToJSON' Value Zero (Rep a)) =>
Options -> a -> Value
genericToJSON Options
customOptions
  toEncoding :: IdentityCredentials -> Encoding
toEncoding = Options -> IdentityCredentials -> Encoding
forall a.
(Generic a, GToJSON' Encoding Zero (Rep a)) =>
Options -> a -> Encoding
genericToEncoding Options
customOptions

data IdentityCredentialsOidc = IdentityCredentialsOidc
  { IdentityCredentialsOidc -> Maybe [IdentityCredentialsOidcProvider]
providers :: Maybe [IdentityCredentialsOidcProvider]
  }
  deriving stock (Int -> IdentityCredentialsOidc -> ShowS
[IdentityCredentialsOidc] -> ShowS
IdentityCredentialsOidc -> String
(Int -> IdentityCredentialsOidc -> ShowS)
-> (IdentityCredentialsOidc -> String)
-> ([IdentityCredentialsOidc] -> ShowS)
-> Show IdentityCredentialsOidc
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IdentityCredentialsOidc] -> ShowS
$cshowList :: [IdentityCredentialsOidc] -> ShowS
show :: IdentityCredentialsOidc -> String
$cshow :: IdentityCredentialsOidc -> String
showsPrec :: Int -> IdentityCredentialsOidc -> ShowS
$cshowsPrec :: Int -> IdentityCredentialsOidc -> ShowS
Show, IdentityCredentialsOidc -> IdentityCredentialsOidc -> Bool
(IdentityCredentialsOidc -> IdentityCredentialsOidc -> Bool)
-> (IdentityCredentialsOidc -> IdentityCredentialsOidc -> Bool)
-> Eq IdentityCredentialsOidc
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IdentityCredentialsOidc -> IdentityCredentialsOidc -> Bool
$c/= :: IdentityCredentialsOidc -> IdentityCredentialsOidc -> Bool
== :: IdentityCredentialsOidc -> IdentityCredentialsOidc -> Bool
$c== :: IdentityCredentialsOidc -> IdentityCredentialsOidc -> Bool
Eq, (forall x.
 IdentityCredentialsOidc -> Rep IdentityCredentialsOidc x)
-> (forall x.
    Rep IdentityCredentialsOidc x -> IdentityCredentialsOidc)
-> Generic IdentityCredentialsOidc
forall x. Rep IdentityCredentialsOidc x -> IdentityCredentialsOidc
forall x. IdentityCredentialsOidc -> Rep IdentityCredentialsOidc x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IdentityCredentialsOidc x -> IdentityCredentialsOidc
$cfrom :: forall x. IdentityCredentialsOidc -> Rep IdentityCredentialsOidc x
Generic, Typeable IdentityCredentialsOidc
DataType
Constr
Typeable IdentityCredentialsOidc
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> IdentityCredentialsOidc
    -> c IdentityCredentialsOidc)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c IdentityCredentialsOidc)
-> (IdentityCredentialsOidc -> Constr)
-> (IdentityCredentialsOidc -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c IdentityCredentialsOidc))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IdentityCredentialsOidc))
-> ((forall b. Data b => b -> b)
    -> IdentityCredentialsOidc -> IdentityCredentialsOidc)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> IdentityCredentialsOidc
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> IdentityCredentialsOidc
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> IdentityCredentialsOidc -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u) -> IdentityCredentialsOidc -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsOidc -> m IdentityCredentialsOidc)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsOidc -> m IdentityCredentialsOidc)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsOidc -> m IdentityCredentialsOidc)
-> Data IdentityCredentialsOidc
IdentityCredentialsOidc -> DataType
IdentityCredentialsOidc -> Constr
(forall b. Data b => b -> b)
-> IdentityCredentialsOidc -> IdentityCredentialsOidc
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsOidc
-> c IdentityCredentialsOidc
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsOidc
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> IdentityCredentialsOidc -> u
forall u.
(forall d. Data d => d -> u) -> IdentityCredentialsOidc -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidc
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidc
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsOidc -> m IdentityCredentialsOidc
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsOidc -> m IdentityCredentialsOidc
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsOidc
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsOidc
-> c IdentityCredentialsOidc
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IdentityCredentialsOidc)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsOidc)
$cIdentityCredentialsOidc :: Constr
$tIdentityCredentialsOidc :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> IdentityCredentialsOidc -> m IdentityCredentialsOidc
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsOidc -> m IdentityCredentialsOidc
gmapMp :: (forall d. Data d => d -> m d)
-> IdentityCredentialsOidc -> m IdentityCredentialsOidc
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsOidc -> m IdentityCredentialsOidc
gmapM :: (forall d. Data d => d -> m d)
-> IdentityCredentialsOidc -> m IdentityCredentialsOidc
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsOidc -> m IdentityCredentialsOidc
gmapQi :: Int -> (forall d. Data d => d -> u) -> IdentityCredentialsOidc -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> IdentityCredentialsOidc -> u
gmapQ :: (forall d. Data d => d -> u) -> IdentityCredentialsOidc -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> IdentityCredentialsOidc -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidc
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidc
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidc
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidc
-> r
gmapT :: (forall b. Data b => b -> b)
-> IdentityCredentialsOidc -> IdentityCredentialsOidc
$cgmapT :: (forall b. Data b => b -> b)
-> IdentityCredentialsOidc -> IdentityCredentialsOidc
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsOidc)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsOidc)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c IdentityCredentialsOidc)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IdentityCredentialsOidc)
dataTypeOf :: IdentityCredentialsOidc -> DataType
$cdataTypeOf :: IdentityCredentialsOidc -> DataType
toConstr :: IdentityCredentialsOidc -> Constr
$ctoConstr :: IdentityCredentialsOidc -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsOidc
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsOidc
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsOidc
-> c IdentityCredentialsOidc
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsOidc
-> c IdentityCredentialsOidc
$cp1Data :: Typeable IdentityCredentialsOidc
Data)

instance FromJSON IdentityCredentialsOidc

instance ToJSON IdentityCredentialsOidc where
  toEncoding :: IdentityCredentialsOidc -> Encoding
toEncoding = Options -> IdentityCredentialsOidc -> Encoding
forall a.
(Generic a, GToJSON' Encoding Zero (Rep a)) =>
Options -> a -> Encoding
genericToEncoding Options
defaultOptions

data IdentityCredentialsOidcProvider = IdentityCredentialsOidcProvider
  { IdentityCredentialsOidcProvider -> Maybe Text
initial_access_token :: Maybe Text,
    IdentityCredentialsOidcProvider -> Maybe Text
initial_id_token :: Maybe Text,
    IdentityCredentialsOidcProvider -> Maybe Text
initial_refresh_token :: Maybe Text,
    IdentityCredentialsOidcProvider -> Maybe Text
provider :: Maybe Text,
    IdentityCredentialsOidcProvider -> Maybe Text
subject :: Maybe Text
  }
  deriving stock (Int -> IdentityCredentialsOidcProvider -> ShowS
[IdentityCredentialsOidcProvider] -> ShowS
IdentityCredentialsOidcProvider -> String
(Int -> IdentityCredentialsOidcProvider -> ShowS)
-> (IdentityCredentialsOidcProvider -> String)
-> ([IdentityCredentialsOidcProvider] -> ShowS)
-> Show IdentityCredentialsOidcProvider
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IdentityCredentialsOidcProvider] -> ShowS
$cshowList :: [IdentityCredentialsOidcProvider] -> ShowS
show :: IdentityCredentialsOidcProvider -> String
$cshow :: IdentityCredentialsOidcProvider -> String
showsPrec :: Int -> IdentityCredentialsOidcProvider -> ShowS
$cshowsPrec :: Int -> IdentityCredentialsOidcProvider -> ShowS
Show, IdentityCredentialsOidcProvider
-> IdentityCredentialsOidcProvider -> Bool
(IdentityCredentialsOidcProvider
 -> IdentityCredentialsOidcProvider -> Bool)
-> (IdentityCredentialsOidcProvider
    -> IdentityCredentialsOidcProvider -> Bool)
-> Eq IdentityCredentialsOidcProvider
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IdentityCredentialsOidcProvider
-> IdentityCredentialsOidcProvider -> Bool
$c/= :: IdentityCredentialsOidcProvider
-> IdentityCredentialsOidcProvider -> Bool
== :: IdentityCredentialsOidcProvider
-> IdentityCredentialsOidcProvider -> Bool
$c== :: IdentityCredentialsOidcProvider
-> IdentityCredentialsOidcProvider -> Bool
Eq, (forall x.
 IdentityCredentialsOidcProvider
 -> Rep IdentityCredentialsOidcProvider x)
-> (forall x.
    Rep IdentityCredentialsOidcProvider x
    -> IdentityCredentialsOidcProvider)
-> Generic IdentityCredentialsOidcProvider
forall x.
Rep IdentityCredentialsOidcProvider x
-> IdentityCredentialsOidcProvider
forall x.
IdentityCredentialsOidcProvider
-> Rep IdentityCredentialsOidcProvider x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep IdentityCredentialsOidcProvider x
-> IdentityCredentialsOidcProvider
$cfrom :: forall x.
IdentityCredentialsOidcProvider
-> Rep IdentityCredentialsOidcProvider x
Generic, Typeable IdentityCredentialsOidcProvider
DataType
Constr
Typeable IdentityCredentialsOidcProvider
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> IdentityCredentialsOidcProvider
    -> c IdentityCredentialsOidcProvider)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r)
    -> Constr
    -> c IdentityCredentialsOidcProvider)
-> (IdentityCredentialsOidcProvider -> Constr)
-> (IdentityCredentialsOidcProvider -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c IdentityCredentialsOidcProvider))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IdentityCredentialsOidcProvider))
-> ((forall b. Data b => b -> b)
    -> IdentityCredentialsOidcProvider
    -> IdentityCredentialsOidcProvider)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> IdentityCredentialsOidcProvider
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> IdentityCredentialsOidcProvider
    -> r)
-> (forall u.
    (forall d. Data d => d -> u)
    -> IdentityCredentialsOidcProvider -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u)
    -> IdentityCredentialsOidcProvider
    -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsOidcProvider
    -> m IdentityCredentialsOidcProvider)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsOidcProvider
    -> m IdentityCredentialsOidcProvider)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsOidcProvider
    -> m IdentityCredentialsOidcProvider)
-> Data IdentityCredentialsOidcProvider
IdentityCredentialsOidcProvider -> DataType
IdentityCredentialsOidcProvider -> Constr
(forall b. Data b => b -> b)
-> IdentityCredentialsOidcProvider
-> IdentityCredentialsOidcProvider
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsOidcProvider
-> c IdentityCredentialsOidcProvider
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c IdentityCredentialsOidcProvider
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u)
-> IdentityCredentialsOidcProvider
-> u
forall u.
(forall d. Data d => d -> u)
-> IdentityCredentialsOidcProvider -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidcProvider
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidcProvider
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsOidcProvider
-> m IdentityCredentialsOidcProvider
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsOidcProvider
-> m IdentityCredentialsOidcProvider
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c IdentityCredentialsOidcProvider
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsOidcProvider
-> c IdentityCredentialsOidcProvider
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c IdentityCredentialsOidcProvider)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsOidcProvider)
$cIdentityCredentialsOidcProvider :: Constr
$tIdentityCredentialsOidcProvider :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> IdentityCredentialsOidcProvider
-> m IdentityCredentialsOidcProvider
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsOidcProvider
-> m IdentityCredentialsOidcProvider
gmapMp :: (forall d. Data d => d -> m d)
-> IdentityCredentialsOidcProvider
-> m IdentityCredentialsOidcProvider
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsOidcProvider
-> m IdentityCredentialsOidcProvider
gmapM :: (forall d. Data d => d -> m d)
-> IdentityCredentialsOidcProvider
-> m IdentityCredentialsOidcProvider
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsOidcProvider
-> m IdentityCredentialsOidcProvider
gmapQi :: Int
-> (forall d. Data d => d -> u)
-> IdentityCredentialsOidcProvider
-> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u)
-> IdentityCredentialsOidcProvider
-> u
gmapQ :: (forall d. Data d => d -> u)
-> IdentityCredentialsOidcProvider -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u)
-> IdentityCredentialsOidcProvider -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidcProvider
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidcProvider
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidcProvider
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsOidcProvider
-> r
gmapT :: (forall b. Data b => b -> b)
-> IdentityCredentialsOidcProvider
-> IdentityCredentialsOidcProvider
$cgmapT :: (forall b. Data b => b -> b)
-> IdentityCredentialsOidcProvider
-> IdentityCredentialsOidcProvider
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsOidcProvider)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsOidcProvider)
dataCast1 :: (forall d. Data d => c (t d))
-> Maybe (c IdentityCredentialsOidcProvider)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c IdentityCredentialsOidcProvider)
dataTypeOf :: IdentityCredentialsOidcProvider -> DataType
$cdataTypeOf :: IdentityCredentialsOidcProvider -> DataType
toConstr :: IdentityCredentialsOidcProvider -> Constr
$ctoConstr :: IdentityCredentialsOidcProvider -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c IdentityCredentialsOidcProvider
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r)
-> Constr
-> c IdentityCredentialsOidcProvider
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsOidcProvider
-> c IdentityCredentialsOidcProvider
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsOidcProvider
-> c IdentityCredentialsOidcProvider
$cp1Data :: Typeable IdentityCredentialsOidcProvider
Data)

instance FromJSON IdentityCredentialsOidcProvider

instance ToJSON IdentityCredentialsOidcProvider where
  toEncoding :: IdentityCredentialsOidcProvider -> Encoding
toEncoding = Options -> IdentityCredentialsOidcProvider -> Encoding
forall a.
(Generic a, GToJSON' Encoding Zero (Rep a)) =>
Options -> a -> Encoding
genericToEncoding Options
defaultOptions

data IdentityCredentialsPassword = IdentityCredentialsPassword
  { -- | HashedPassword is a hash-representation of the password.
    IdentityCredentialsPassword -> Maybe Text
hashed_password :: Maybe Text
  }
  deriving stock (Int -> IdentityCredentialsPassword -> ShowS
[IdentityCredentialsPassword] -> ShowS
IdentityCredentialsPassword -> String
(Int -> IdentityCredentialsPassword -> ShowS)
-> (IdentityCredentialsPassword -> String)
-> ([IdentityCredentialsPassword] -> ShowS)
-> Show IdentityCredentialsPassword
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IdentityCredentialsPassword] -> ShowS
$cshowList :: [IdentityCredentialsPassword] -> ShowS
show :: IdentityCredentialsPassword -> String
$cshow :: IdentityCredentialsPassword -> String
showsPrec :: Int -> IdentityCredentialsPassword -> ShowS
$cshowsPrec :: Int -> IdentityCredentialsPassword -> ShowS
Show, IdentityCredentialsPassword -> IdentityCredentialsPassword -> Bool
(IdentityCredentialsPassword
 -> IdentityCredentialsPassword -> Bool)
-> (IdentityCredentialsPassword
    -> IdentityCredentialsPassword -> Bool)
-> Eq IdentityCredentialsPassword
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IdentityCredentialsPassword -> IdentityCredentialsPassword -> Bool
$c/= :: IdentityCredentialsPassword -> IdentityCredentialsPassword -> Bool
== :: IdentityCredentialsPassword -> IdentityCredentialsPassword -> Bool
$c== :: IdentityCredentialsPassword -> IdentityCredentialsPassword -> Bool
Eq, (forall x.
 IdentityCredentialsPassword -> Rep IdentityCredentialsPassword x)
-> (forall x.
    Rep IdentityCredentialsPassword x -> IdentityCredentialsPassword)
-> Generic IdentityCredentialsPassword
forall x.
Rep IdentityCredentialsPassword x -> IdentityCredentialsPassword
forall x.
IdentityCredentialsPassword -> Rep IdentityCredentialsPassword x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep IdentityCredentialsPassword x -> IdentityCredentialsPassword
$cfrom :: forall x.
IdentityCredentialsPassword -> Rep IdentityCredentialsPassword x
Generic, Typeable IdentityCredentialsPassword
DataType
Constr
Typeable IdentityCredentialsPassword
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> IdentityCredentialsPassword
    -> c IdentityCredentialsPassword)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c IdentityCredentialsPassword)
-> (IdentityCredentialsPassword -> Constr)
-> (IdentityCredentialsPassword -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d))
    -> Maybe (c IdentityCredentialsPassword))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IdentityCredentialsPassword))
-> ((forall b. Data b => b -> b)
    -> IdentityCredentialsPassword -> IdentityCredentialsPassword)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> IdentityCredentialsPassword
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> IdentityCredentialsPassword
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> IdentityCredentialsPassword -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u)
    -> IdentityCredentialsPassword
    -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsPassword -> m IdentityCredentialsPassword)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsPassword -> m IdentityCredentialsPassword)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsPassword -> m IdentityCredentialsPassword)
-> Data IdentityCredentialsPassword
IdentityCredentialsPassword -> DataType
IdentityCredentialsPassword -> Constr
(forall b. Data b => b -> b)
-> IdentityCredentialsPassword -> IdentityCredentialsPassword
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsPassword
-> c IdentityCredentialsPassword
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsPassword
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u) -> IdentityCredentialsPassword -> u
forall u.
(forall d. Data d => d -> u) -> IdentityCredentialsPassword -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsPassword
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsPassword
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsPassword -> m IdentityCredentialsPassword
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsPassword -> m IdentityCredentialsPassword
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsPassword
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsPassword
-> c IdentityCredentialsPassword
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c IdentityCredentialsPassword)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsPassword)
$cIdentityCredentialsPassword :: Constr
$tIdentityCredentialsPassword :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> IdentityCredentialsPassword -> m IdentityCredentialsPassword
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsPassword -> m IdentityCredentialsPassword
gmapMp :: (forall d. Data d => d -> m d)
-> IdentityCredentialsPassword -> m IdentityCredentialsPassword
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsPassword -> m IdentityCredentialsPassword
gmapM :: (forall d. Data d => d -> m d)
-> IdentityCredentialsPassword -> m IdentityCredentialsPassword
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsPassword -> m IdentityCredentialsPassword
gmapQi :: Int
-> (forall d. Data d => d -> u) -> IdentityCredentialsPassword -> u
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u) -> IdentityCredentialsPassword -> u
gmapQ :: (forall d. Data d => d -> u) -> IdentityCredentialsPassword -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> IdentityCredentialsPassword -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsPassword
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsPassword
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsPassword
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsPassword
-> r
gmapT :: (forall b. Data b => b -> b)
-> IdentityCredentialsPassword -> IdentityCredentialsPassword
$cgmapT :: (forall b. Data b => b -> b)
-> IdentityCredentialsPassword -> IdentityCredentialsPassword
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsPassword)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsPassword)
dataCast1 :: (forall d. Data d => c (t d))
-> Maybe (c IdentityCredentialsPassword)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c IdentityCredentialsPassword)
dataTypeOf :: IdentityCredentialsPassword -> DataType
$cdataTypeOf :: IdentityCredentialsPassword -> DataType
toConstr :: IdentityCredentialsPassword -> Constr
$ctoConstr :: IdentityCredentialsPassword -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsPassword
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsPassword
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsPassword
-> c IdentityCredentialsPassword
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsPassword
-> c IdentityCredentialsPassword
$cp1Data :: Typeable IdentityCredentialsPassword
Data)

instance FromJSON IdentityCredentialsPassword

instance ToJSON IdentityCredentialsPassword where
  toEncoding :: IdentityCredentialsPassword -> Encoding
toEncoding = Options -> IdentityCredentialsPassword -> Encoding
forall a.
(Generic a, GToJSON' Encoding Zero (Rep a)) =>
Options -> a -> Encoding
genericToEncoding Options
defaultOptions

-- | and so on.
data IdentityCredentialsType
  = Password
  | TOTP
  | OIDC
  | WebAuthn
  | LookupSecret
  deriving stock (Int -> IdentityCredentialsType -> ShowS
[IdentityCredentialsType] -> ShowS
IdentityCredentialsType -> String
(Int -> IdentityCredentialsType -> ShowS)
-> (IdentityCredentialsType -> String)
-> ([IdentityCredentialsType] -> ShowS)
-> Show IdentityCredentialsType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IdentityCredentialsType] -> ShowS
$cshowList :: [IdentityCredentialsType] -> ShowS
show :: IdentityCredentialsType -> String
$cshow :: IdentityCredentialsType -> String
showsPrec :: Int -> IdentityCredentialsType -> ShowS
$cshowsPrec :: Int -> IdentityCredentialsType -> ShowS
Show, IdentityCredentialsType -> IdentityCredentialsType -> Bool
(IdentityCredentialsType -> IdentityCredentialsType -> Bool)
-> (IdentityCredentialsType -> IdentityCredentialsType -> Bool)
-> Eq IdentityCredentialsType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IdentityCredentialsType -> IdentityCredentialsType -> Bool
$c/= :: IdentityCredentialsType -> IdentityCredentialsType -> Bool
== :: IdentityCredentialsType -> IdentityCredentialsType -> Bool
$c== :: IdentityCredentialsType -> IdentityCredentialsType -> Bool
Eq, (forall x.
 IdentityCredentialsType -> Rep IdentityCredentialsType x)
-> (forall x.
    Rep IdentityCredentialsType x -> IdentityCredentialsType)
-> Generic IdentityCredentialsType
forall x. Rep IdentityCredentialsType x -> IdentityCredentialsType
forall x. IdentityCredentialsType -> Rep IdentityCredentialsType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IdentityCredentialsType x -> IdentityCredentialsType
$cfrom :: forall x. IdentityCredentialsType -> Rep IdentityCredentialsType x
Generic, Typeable IdentityCredentialsType
DataType
Constr
Typeable IdentityCredentialsType
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g)
    -> IdentityCredentialsType
    -> c IdentityCredentialsType)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c IdentityCredentialsType)
-> (IdentityCredentialsType -> Constr)
-> (IdentityCredentialsType -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c IdentityCredentialsType))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IdentityCredentialsType))
-> ((forall b. Data b => b -> b)
    -> IdentityCredentialsType -> IdentityCredentialsType)
-> (forall r r'.
    (r -> r' -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> IdentityCredentialsType
    -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r
    -> (forall d. Data d => d -> r')
    -> IdentityCredentialsType
    -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> IdentityCredentialsType -> [u])
-> (forall u.
    Int
    -> (forall d. Data d => d -> u) -> IdentityCredentialsType -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsType -> m IdentityCredentialsType)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsType -> m IdentityCredentialsType)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentityCredentialsType -> m IdentityCredentialsType)
-> Data IdentityCredentialsType
IdentityCredentialsType -> DataType
IdentityCredentialsType -> Constr
(forall b. Data b => b -> b)
-> IdentityCredentialsType -> IdentityCredentialsType
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsType
-> c IdentityCredentialsType
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsType
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> IdentityCredentialsType -> u
forall u.
(forall d. Data d => d -> u) -> IdentityCredentialsType -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsType
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsType
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsType -> m IdentityCredentialsType
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsType -> m IdentityCredentialsType
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsType
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsType
-> c IdentityCredentialsType
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IdentityCredentialsType)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsType)
$cLookupSecret :: Constr
$cWebAuthn :: Constr
$cOIDC :: Constr
$cTOTP :: Constr
$cPassword :: Constr
$tIdentityCredentialsType :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> IdentityCredentialsType -> m IdentityCredentialsType
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsType -> m IdentityCredentialsType
gmapMp :: (forall d. Data d => d -> m d)
-> IdentityCredentialsType -> m IdentityCredentialsType
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsType -> m IdentityCredentialsType
gmapM :: (forall d. Data d => d -> m d)
-> IdentityCredentialsType -> m IdentityCredentialsType
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentityCredentialsType -> m IdentityCredentialsType
gmapQi :: Int -> (forall d. Data d => d -> u) -> IdentityCredentialsType -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> IdentityCredentialsType -> u
gmapQ :: (forall d. Data d => d -> u) -> IdentityCredentialsType -> [u]
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> IdentityCredentialsType -> [u]
gmapQr :: (r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsType
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsType
-> r
gmapQl :: (r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsType
-> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> IdentityCredentialsType
-> r
gmapT :: (forall b. Data b => b -> b)
-> IdentityCredentialsType -> IdentityCredentialsType
$cgmapT :: (forall b. Data b => b -> b)
-> IdentityCredentialsType -> IdentityCredentialsType
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsType)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityCredentialsType)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c IdentityCredentialsType)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IdentityCredentialsType)
dataTypeOf :: IdentityCredentialsType -> DataType
$cdataTypeOf :: IdentityCredentialsType -> DataType
toConstr :: IdentityCredentialsType -> Constr
$ctoConstr :: IdentityCredentialsType -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsType
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityCredentialsType
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsType
-> c IdentityCredentialsType
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> IdentityCredentialsType
-> c IdentityCredentialsType
$cp1Data :: Typeable IdentityCredentialsType
Data)

instance FromJSON IdentityCredentialsType where
  parseJSON :: Value -> Parser IdentityCredentialsType
parseJSON (Aeson.String Text
s) = case Text -> String
T.unpack Text
s of
    String
"password" -> IdentityCredentialsType -> Parser IdentityCredentialsType
forall (m :: * -> *) a. Monad m => a -> m a
return IdentityCredentialsType
Password
    String
"totp" -> IdentityCredentialsType -> Parser IdentityCredentialsType
forall (m :: * -> *) a. Monad m => a -> m a
return IdentityCredentialsType
TOTP
    String
"oidc" -> IdentityCredentialsType -> Parser IdentityCredentialsType
forall (m :: * -> *) a. Monad m => a -> m a
return IdentityCredentialsType
OIDC
    String
"webauthn" -> IdentityCredentialsType -> Parser IdentityCredentialsType
forall (m :: * -> *) a. Monad m => a -> m a
return IdentityCredentialsType
WebAuthn
    String
"lookup_secret" -> IdentityCredentialsType -> Parser IdentityCredentialsType
forall (m :: * -> *) a. Monad m => a -> m a
return IdentityCredentialsType
LookupSecret
    String
_ -> String -> Parser IdentityCredentialsType
forall a. HasCallStack => String -> a
error String
"Invalid IdentityCredentialsType"
  parseJSON Value
_ = String -> Parser IdentityCredentialsType
forall a. HasCallStack => String -> a
error String
"Invalid IdentityCredentialsType"

instance ToJSON IdentityCredentialsType where
  toJSON :: IdentityCredentialsType -> Value
toJSON (IdentityCredentialsType
Password) = Text -> Value
Aeson.String Text
"password"
  toJSON (IdentityCredentialsType
TOTP) = Text -> Value
Aeson.String Text
"totp"
  toJSON (IdentityCredentialsType
OIDC) = Text -> Value
Aeson.String Text
"oidc"
  toJSON (IdentityCredentialsType
WebAuthn) = Text -> Value
Aeson.String Text
"webauthn"
  toJSON (IdentityCredentialsType
LookupSecret) = Text -> Value
Aeson.String Text
"lookup_secret"

data IdentitySchema = IdentitySchema
  { -- | The ID of the Identity JSON Schema
    IdentitySchema -> Maybe Text
id :: Maybe Text,
    -- | The actual Identity JSON Schema
    IdentitySchema -> Maybe Value
schema :: Maybe Value
  }
  deriving stock (Int -> IdentitySchema -> ShowS
[IdentitySchema] -> ShowS
IdentitySchema -> String
(Int -> IdentitySchema -> ShowS)
-> (IdentitySchema -> String)
-> ([IdentitySchema] -> ShowS)
-> Show IdentitySchema
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IdentitySchema] -> ShowS
$cshowList :: [IdentitySchema] -> ShowS
show :: IdentitySchema -> String
$cshow :: IdentitySchema -> String
showsPrec :: Int -> IdentitySchema -> ShowS
$cshowsPrec :: Int -> IdentitySchema -> ShowS
Show, IdentitySchema -> IdentitySchema -> Bool
(IdentitySchema -> IdentitySchema -> Bool)
-> (IdentitySchema -> IdentitySchema -> Bool) -> Eq IdentitySchema
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IdentitySchema -> IdentitySchema -> Bool
$c/= :: IdentitySchema -> IdentitySchema -> Bool
== :: IdentitySchema -> IdentitySchema -> Bool
$c== :: IdentitySchema -> IdentitySchema -> Bool
Eq, (forall x. IdentitySchema -> Rep IdentitySchema x)
-> (forall x. Rep IdentitySchema x -> IdentitySchema)
-> Generic IdentitySchema
forall x. Rep IdentitySchema x -> IdentitySchema
forall x. IdentitySchema -> Rep IdentitySchema x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IdentitySchema x -> IdentitySchema
$cfrom :: forall x. IdentitySchema -> Rep IdentitySchema x
Generic, Typeable IdentitySchema
DataType
Constr
Typeable IdentitySchema
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> IdentitySchema -> c IdentitySchema)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c IdentitySchema)
-> (IdentitySchema -> Constr)
-> (IdentitySchema -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c IdentitySchema))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IdentitySchema))
-> ((forall b. Data b => b -> b)
    -> IdentitySchema -> IdentitySchema)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> IdentitySchema -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> IdentitySchema -> r)
-> (forall u.
    (forall d. Data d => d -> u) -> IdentitySchema -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> IdentitySchema -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d)
    -> IdentitySchema -> m IdentitySchema)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentitySchema -> m IdentitySchema)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d)
    -> IdentitySchema -> m IdentitySchema)
-> Data IdentitySchema
IdentitySchema -> DataType
IdentitySchema -> Constr
(forall b. Data b => b -> b) -> IdentitySchema -> IdentitySchema
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IdentitySchema -> c IdentitySchema
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentitySchema
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> IdentitySchema -> u
forall u. (forall d. Data d => d -> u) -> IdentitySchema -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IdentitySchema -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IdentitySchema -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentitySchema -> m IdentitySchema
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentitySchema -> m IdentitySchema
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentitySchema
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IdentitySchema -> c IdentitySchema
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IdentitySchema)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentitySchema)
$cIdentitySchema :: Constr
$tIdentitySchema :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> IdentitySchema -> m IdentitySchema
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentitySchema -> m IdentitySchema
gmapMp :: (forall d. Data d => d -> m d)
-> IdentitySchema -> m IdentitySchema
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IdentitySchema -> m IdentitySchema
gmapM :: (forall d. Data d => d -> m d)
-> IdentitySchema -> m IdentitySchema
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IdentitySchema -> m IdentitySchema
gmapQi :: Int -> (forall d. Data d => d -> u) -> IdentitySchema -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> IdentitySchema -> u
gmapQ :: (forall d. Data d => d -> u) -> IdentitySchema -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> IdentitySchema -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IdentitySchema -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IdentitySchema -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IdentitySchema -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IdentitySchema -> r
gmapT :: (forall b. Data b => b -> b) -> IdentitySchema -> IdentitySchema
$cgmapT :: (forall b. Data b => b -> b) -> IdentitySchema -> IdentitySchema
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentitySchema)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentitySchema)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c IdentitySchema)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IdentitySchema)
dataTypeOf :: IdentitySchema -> DataType
$cdataTypeOf :: IdentitySchema -> DataType
toConstr :: IdentitySchema -> Constr
$ctoConstr :: IdentitySchema -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentitySchema
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentitySchema
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IdentitySchema -> c IdentitySchema
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IdentitySchema -> c IdentitySchema
$cp1Data :: Typeable IdentitySchema
Data)

instance FromJSON IdentitySchema

instance ToJSON IdentitySchema where
  toEncoding :: IdentitySchema -> Encoding
toEncoding = Options -> IdentitySchema -> Encoding
forall a.
(Generic a, GToJSON' Encoding Zero (Rep a)) =>
Options -> a -> Encoding
genericToEncoding Options
defaultOptions

-- | The state can either be `active` or `inactive`.
data IdentityState = IdentityStateActive | IdentityStateInactive deriving stock (Int -> IdentityState -> ShowS
[IdentityState] -> ShowS
IdentityState -> String
(Int -> IdentityState -> ShowS)
-> (IdentityState -> String)
-> ([IdentityState] -> ShowS)
-> Show IdentityState
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IdentityState] -> ShowS
$cshowList :: [IdentityState] -> ShowS
show :: IdentityState -> String
$cshow :: IdentityState -> String
showsPrec :: Int -> IdentityState -> ShowS
$cshowsPrec :: Int -> IdentityState -> ShowS
Show, IdentityState -> IdentityState -> Bool
(IdentityState -> IdentityState -> Bool)
-> (IdentityState -> IdentityState -> Bool) -> Eq IdentityState
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IdentityState -> IdentityState -> Bool
$c/= :: IdentityState -> IdentityState -> Bool
== :: IdentityState -> IdentityState -> Bool
$c== :: IdentityState -> IdentityState -> Bool
Eq, (forall x. IdentityState -> Rep IdentityState x)
-> (forall x. Rep IdentityState x -> IdentityState)
-> Generic IdentityState
forall x. Rep IdentityState x -> IdentityState
forall x. IdentityState -> Rep IdentityState x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IdentityState x -> IdentityState
$cfrom :: forall x. IdentityState -> Rep IdentityState x
Generic, Typeable IdentityState
DataType
Constr
Typeable IdentityState
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> IdentityState -> c IdentityState)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c IdentityState)
-> (IdentityState -> Constr)
-> (IdentityState -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c IdentityState))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e))
    -> Maybe (c IdentityState))
-> ((forall b. Data b => b -> b) -> IdentityState -> IdentityState)
-> (forall r r'.
    (r -> r' -> r)
    -> r -> (forall d. Data d => d -> r') -> IdentityState -> r)
-> (forall r r'.
    (r' -> r -> r)
    -> r -> (forall d. Data d => d -> r') -> IdentityState -> r)
-> (forall u. (forall d. Data d => d -> u) -> IdentityState -> [u])
-> (forall u.
    Int -> (forall d. Data d => d -> u) -> IdentityState -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> IdentityState -> m IdentityState)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> IdentityState -> m IdentityState)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> IdentityState -> m IdentityState)
-> Data IdentityState
IdentityState -> DataType
IdentityState -> Constr
(forall b. Data b => b -> b) -> IdentityState -> IdentityState
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IdentityState -> c IdentityState
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityState
forall a.
Typeable a
-> (forall (c :: * -> *).
    (forall d b. Data d => c (d -> b) -> d -> c b)
    -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
    (forall b r. Data b => c (b -> r) -> c r)
    -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
    Typeable t =>
    (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
    Typeable t =>
    (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
    (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
    (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
    Monad m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
    MonadPlus m =>
    (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> IdentityState -> u
forall u. (forall d. Data d => d -> u) -> IdentityState -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityState -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityState -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> IdentityState -> m IdentityState
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> IdentityState -> m IdentityState
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityState
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IdentityState -> c IdentityState
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IdentityState)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityState)
$cIdentityStateInactive :: Constr
$cIdentityStateActive :: Constr
$tIdentityState :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> IdentityState -> m IdentityState
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> IdentityState -> m IdentityState
gmapMp :: (forall d. Data d => d -> m d) -> IdentityState -> m IdentityState
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> IdentityState -> m IdentityState
gmapM :: (forall d. Data d => d -> m d) -> IdentityState -> m IdentityState
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> IdentityState -> m IdentityState
gmapQi :: Int -> (forall d. Data d => d -> u) -> IdentityState -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> IdentityState -> u
gmapQ :: (forall d. Data d => d -> u) -> IdentityState -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> IdentityState -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityState -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityState -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityState -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IdentityState -> r
gmapT :: (forall b. Data b => b -> b) -> IdentityState -> IdentityState
$cgmapT :: (forall b. Data b => b -> b) -> IdentityState -> IdentityState
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityState)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IdentityState)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c IdentityState)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IdentityState)
dataTypeOf :: IdentityState -> DataType
$cdataTypeOf :: IdentityState -> DataType
toConstr :: IdentityState -> Constr
$ctoConstr :: IdentityState -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityState
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IdentityState
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IdentityState -> c IdentityState
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IdentityState -> c IdentityState
$cp1Data :: Typeable IdentityState
Data)

instance FromJSON IdentityState where
  parseJSON :: Value -> Parser IdentityState
parseJSON (Aeson.String Text
s) = case Text -> String
T.unpack Text
s of
    String
"active" -> IdentityState -> Parser IdentityState
forall (m :: * -> *) a. Monad m => a -> m a
return IdentityState
IdentityStateActive
    String
"inactive" -> IdentityState -> Parser IdentityState
forall (m :: * -> *) a. Monad m => a -> m a
return IdentityState
IdentityStateInactive
    String
_ -> String -> Parser IdentityState
forall a. HasCallStack => String -> a
error String
"Invalid IdentityState"
  parseJSON Value
_ = String -> Parser IdentityState
forall a. HasCallStack => String -> a
error String
"Invalid IdentityState"

instance ToJSON IdentityState where
  toJSON :: IdentityState -> Value
toJSON (IdentityState
IdentityStateActive) = Text -> Value
Aeson.String Text
"active"
  toJSON (IdentityState
IdentityStateInactive) = Text -> Value
Aeson.String Text
"inactive"