{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.AppSync.Types.AdditionalAuthenticationProvider where
import Amazonka.AppSync.Types.AuthenticationType
import Amazonka.AppSync.Types.CognitoUserPoolConfig
import Amazonka.AppSync.Types.LambdaAuthorizerConfig
import Amazonka.AppSync.Types.OpenIDConnectConfig
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
data AdditionalAuthenticationProvider = AdditionalAuthenticationProvider'
{
AdditionalAuthenticationProvider -> Maybe AuthenticationType
authenticationType :: Prelude.Maybe AuthenticationType,
AdditionalAuthenticationProvider -> Maybe LambdaAuthorizerConfig
lambdaAuthorizerConfig :: Prelude.Maybe LambdaAuthorizerConfig,
AdditionalAuthenticationProvider -> Maybe OpenIDConnectConfig
openIDConnectConfig :: Prelude.Maybe OpenIDConnectConfig,
AdditionalAuthenticationProvider -> Maybe CognitoUserPoolConfig
userPoolConfig :: Prelude.Maybe CognitoUserPoolConfig
}
deriving (AdditionalAuthenticationProvider
-> AdditionalAuthenticationProvider -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AdditionalAuthenticationProvider
-> AdditionalAuthenticationProvider -> Bool
$c/= :: AdditionalAuthenticationProvider
-> AdditionalAuthenticationProvider -> Bool
== :: AdditionalAuthenticationProvider
-> AdditionalAuthenticationProvider -> Bool
$c== :: AdditionalAuthenticationProvider
-> AdditionalAuthenticationProvider -> Bool
Prelude.Eq, ReadPrec [AdditionalAuthenticationProvider]
ReadPrec AdditionalAuthenticationProvider
Int -> ReadS AdditionalAuthenticationProvider
ReadS [AdditionalAuthenticationProvider]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AdditionalAuthenticationProvider]
$creadListPrec :: ReadPrec [AdditionalAuthenticationProvider]
readPrec :: ReadPrec AdditionalAuthenticationProvider
$creadPrec :: ReadPrec AdditionalAuthenticationProvider
readList :: ReadS [AdditionalAuthenticationProvider]
$creadList :: ReadS [AdditionalAuthenticationProvider]
readsPrec :: Int -> ReadS AdditionalAuthenticationProvider
$creadsPrec :: Int -> ReadS AdditionalAuthenticationProvider
Prelude.Read, Int -> AdditionalAuthenticationProvider -> ShowS
[AdditionalAuthenticationProvider] -> ShowS
AdditionalAuthenticationProvider -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AdditionalAuthenticationProvider] -> ShowS
$cshowList :: [AdditionalAuthenticationProvider] -> ShowS
show :: AdditionalAuthenticationProvider -> String
$cshow :: AdditionalAuthenticationProvider -> String
showsPrec :: Int -> AdditionalAuthenticationProvider -> ShowS
$cshowsPrec :: Int -> AdditionalAuthenticationProvider -> ShowS
Prelude.Show, forall x.
Rep AdditionalAuthenticationProvider x
-> AdditionalAuthenticationProvider
forall x.
AdditionalAuthenticationProvider
-> Rep AdditionalAuthenticationProvider x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AdditionalAuthenticationProvider x
-> AdditionalAuthenticationProvider
$cfrom :: forall x.
AdditionalAuthenticationProvider
-> Rep AdditionalAuthenticationProvider x
Prelude.Generic)
newAdditionalAuthenticationProvider ::
AdditionalAuthenticationProvider
newAdditionalAuthenticationProvider :: AdditionalAuthenticationProvider
newAdditionalAuthenticationProvider =
AdditionalAuthenticationProvider'
{ $sel:authenticationType:AdditionalAuthenticationProvider' :: Maybe AuthenticationType
authenticationType =
forall a. Maybe a
Prelude.Nothing,
$sel:lambdaAuthorizerConfig:AdditionalAuthenticationProvider' :: Maybe LambdaAuthorizerConfig
lambdaAuthorizerConfig = forall a. Maybe a
Prelude.Nothing,
$sel:openIDConnectConfig:AdditionalAuthenticationProvider' :: Maybe OpenIDConnectConfig
openIDConnectConfig = forall a. Maybe a
Prelude.Nothing,
$sel:userPoolConfig:AdditionalAuthenticationProvider' :: Maybe CognitoUserPoolConfig
userPoolConfig = forall a. Maybe a
Prelude.Nothing
}
additionalAuthenticationProvider_authenticationType :: Lens.Lens' AdditionalAuthenticationProvider (Prelude.Maybe AuthenticationType)
additionalAuthenticationProvider_authenticationType :: Lens' AdditionalAuthenticationProvider (Maybe AuthenticationType)
additionalAuthenticationProvider_authenticationType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdditionalAuthenticationProvider' {Maybe AuthenticationType
authenticationType :: Maybe AuthenticationType
$sel:authenticationType:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe AuthenticationType
authenticationType} -> Maybe AuthenticationType
authenticationType) (\s :: AdditionalAuthenticationProvider
s@AdditionalAuthenticationProvider' {} Maybe AuthenticationType
a -> AdditionalAuthenticationProvider
s {$sel:authenticationType:AdditionalAuthenticationProvider' :: Maybe AuthenticationType
authenticationType = Maybe AuthenticationType
a} :: AdditionalAuthenticationProvider)
additionalAuthenticationProvider_lambdaAuthorizerConfig :: Lens.Lens' AdditionalAuthenticationProvider (Prelude.Maybe LambdaAuthorizerConfig)
additionalAuthenticationProvider_lambdaAuthorizerConfig :: Lens'
AdditionalAuthenticationProvider (Maybe LambdaAuthorizerConfig)
additionalAuthenticationProvider_lambdaAuthorizerConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdditionalAuthenticationProvider' {Maybe LambdaAuthorizerConfig
lambdaAuthorizerConfig :: Maybe LambdaAuthorizerConfig
$sel:lambdaAuthorizerConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe LambdaAuthorizerConfig
lambdaAuthorizerConfig} -> Maybe LambdaAuthorizerConfig
lambdaAuthorizerConfig) (\s :: AdditionalAuthenticationProvider
s@AdditionalAuthenticationProvider' {} Maybe LambdaAuthorizerConfig
a -> AdditionalAuthenticationProvider
s {$sel:lambdaAuthorizerConfig:AdditionalAuthenticationProvider' :: Maybe LambdaAuthorizerConfig
lambdaAuthorizerConfig = Maybe LambdaAuthorizerConfig
a} :: AdditionalAuthenticationProvider)
additionalAuthenticationProvider_openIDConnectConfig :: Lens.Lens' AdditionalAuthenticationProvider (Prelude.Maybe OpenIDConnectConfig)
additionalAuthenticationProvider_openIDConnectConfig :: Lens' AdditionalAuthenticationProvider (Maybe OpenIDConnectConfig)
additionalAuthenticationProvider_openIDConnectConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdditionalAuthenticationProvider' {Maybe OpenIDConnectConfig
openIDConnectConfig :: Maybe OpenIDConnectConfig
$sel:openIDConnectConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe OpenIDConnectConfig
openIDConnectConfig} -> Maybe OpenIDConnectConfig
openIDConnectConfig) (\s :: AdditionalAuthenticationProvider
s@AdditionalAuthenticationProvider' {} Maybe OpenIDConnectConfig
a -> AdditionalAuthenticationProvider
s {$sel:openIDConnectConfig:AdditionalAuthenticationProvider' :: Maybe OpenIDConnectConfig
openIDConnectConfig = Maybe OpenIDConnectConfig
a} :: AdditionalAuthenticationProvider)
additionalAuthenticationProvider_userPoolConfig :: Lens.Lens' AdditionalAuthenticationProvider (Prelude.Maybe CognitoUserPoolConfig)
additionalAuthenticationProvider_userPoolConfig :: Lens'
AdditionalAuthenticationProvider (Maybe CognitoUserPoolConfig)
additionalAuthenticationProvider_userPoolConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdditionalAuthenticationProvider' {Maybe CognitoUserPoolConfig
userPoolConfig :: Maybe CognitoUserPoolConfig
$sel:userPoolConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe CognitoUserPoolConfig
userPoolConfig} -> Maybe CognitoUserPoolConfig
userPoolConfig) (\s :: AdditionalAuthenticationProvider
s@AdditionalAuthenticationProvider' {} Maybe CognitoUserPoolConfig
a -> AdditionalAuthenticationProvider
s {$sel:userPoolConfig:AdditionalAuthenticationProvider' :: Maybe CognitoUserPoolConfig
userPoolConfig = Maybe CognitoUserPoolConfig
a} :: AdditionalAuthenticationProvider)
instance
Data.FromJSON
AdditionalAuthenticationProvider
where
parseJSON :: Value -> Parser AdditionalAuthenticationProvider
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"AdditionalAuthenticationProvider"
( \Object
x ->
Maybe AuthenticationType
-> Maybe LambdaAuthorizerConfig
-> Maybe OpenIDConnectConfig
-> Maybe CognitoUserPoolConfig
-> AdditionalAuthenticationProvider
AdditionalAuthenticationProvider'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"authenticationType")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"lambdaAuthorizerConfig")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"openIDConnectConfig")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"userPoolConfig")
)
instance
Prelude.Hashable
AdditionalAuthenticationProvider
where
hashWithSalt :: Int -> AdditionalAuthenticationProvider -> Int
hashWithSalt
Int
_salt
AdditionalAuthenticationProvider' {Maybe AuthenticationType
Maybe CognitoUserPoolConfig
Maybe LambdaAuthorizerConfig
Maybe OpenIDConnectConfig
userPoolConfig :: Maybe CognitoUserPoolConfig
openIDConnectConfig :: Maybe OpenIDConnectConfig
lambdaAuthorizerConfig :: Maybe LambdaAuthorizerConfig
authenticationType :: Maybe AuthenticationType
$sel:userPoolConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe CognitoUserPoolConfig
$sel:openIDConnectConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe OpenIDConnectConfig
$sel:lambdaAuthorizerConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe LambdaAuthorizerConfig
$sel:authenticationType:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe AuthenticationType
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AuthenticationType
authenticationType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LambdaAuthorizerConfig
lambdaAuthorizerConfig
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OpenIDConnectConfig
openIDConnectConfig
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CognitoUserPoolConfig
userPoolConfig
instance
Prelude.NFData
AdditionalAuthenticationProvider
where
rnf :: AdditionalAuthenticationProvider -> ()
rnf AdditionalAuthenticationProvider' {Maybe AuthenticationType
Maybe CognitoUserPoolConfig
Maybe LambdaAuthorizerConfig
Maybe OpenIDConnectConfig
userPoolConfig :: Maybe CognitoUserPoolConfig
openIDConnectConfig :: Maybe OpenIDConnectConfig
lambdaAuthorizerConfig :: Maybe LambdaAuthorizerConfig
authenticationType :: Maybe AuthenticationType
$sel:userPoolConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe CognitoUserPoolConfig
$sel:openIDConnectConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe OpenIDConnectConfig
$sel:lambdaAuthorizerConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe LambdaAuthorizerConfig
$sel:authenticationType:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe AuthenticationType
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe AuthenticationType
authenticationType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LambdaAuthorizerConfig
lambdaAuthorizerConfig
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OpenIDConnectConfig
openIDConnectConfig
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CognitoUserPoolConfig
userPoolConfig
instance Data.ToJSON AdditionalAuthenticationProvider where
toJSON :: AdditionalAuthenticationProvider -> Value
toJSON AdditionalAuthenticationProvider' {Maybe AuthenticationType
Maybe CognitoUserPoolConfig
Maybe LambdaAuthorizerConfig
Maybe OpenIDConnectConfig
userPoolConfig :: Maybe CognitoUserPoolConfig
openIDConnectConfig :: Maybe OpenIDConnectConfig
lambdaAuthorizerConfig :: Maybe LambdaAuthorizerConfig
authenticationType :: Maybe AuthenticationType
$sel:userPoolConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe CognitoUserPoolConfig
$sel:openIDConnectConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe OpenIDConnectConfig
$sel:lambdaAuthorizerConfig:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe LambdaAuthorizerConfig
$sel:authenticationType:AdditionalAuthenticationProvider' :: AdditionalAuthenticationProvider -> Maybe AuthenticationType
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"authenticationType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AuthenticationType
authenticationType,
(Key
"lambdaAuthorizerConfig" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LambdaAuthorizerConfig
lambdaAuthorizerConfig,
(Key
"openIDConnectConfig" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OpenIDConnectConfig
openIDConnectConfig,
(Key
"userPoolConfig" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CognitoUserPoolConfig
userPoolConfig
]
)