stratosphere-0.38.0: library-gen/Stratosphere/ResourceProperties/AppSyncGraphQLApiAdditionalAuthenticationProvider.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html
module Stratosphere.ResourceProperties.AppSyncGraphQLApiAdditionalAuthenticationProvider where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppSyncGraphQLApiOpenIDConnectConfig
import Stratosphere.ResourceProperties.AppSyncGraphQLApiCognitoUserPoolConfig
-- | Full data type definition for
-- AppSyncGraphQLApiAdditionalAuthenticationProvider. See
-- 'appSyncGraphQLApiAdditionalAuthenticationProvider' for a more convenient
-- constructor.
data AppSyncGraphQLApiAdditionalAuthenticationProvider =
AppSyncGraphQLApiAdditionalAuthenticationProvider
{ _appSyncGraphQLApiAdditionalAuthenticationProviderAuthenticationType :: Val Text
, _appSyncGraphQLApiAdditionalAuthenticationProviderOpenIDConnectConfig :: Maybe AppSyncGraphQLApiOpenIDConnectConfig
, _appSyncGraphQLApiAdditionalAuthenticationProviderUserPoolConfig :: Maybe AppSyncGraphQLApiCognitoUserPoolConfig
} deriving (Show, Eq)
instance ToJSON AppSyncGraphQLApiAdditionalAuthenticationProvider where
toJSON AppSyncGraphQLApiAdditionalAuthenticationProvider{..} =
object $
catMaybes
[ (Just . ("AuthenticationType",) . toJSON) _appSyncGraphQLApiAdditionalAuthenticationProviderAuthenticationType
, fmap (("OpenIDConnectConfig",) . toJSON) _appSyncGraphQLApiAdditionalAuthenticationProviderOpenIDConnectConfig
, fmap (("UserPoolConfig",) . toJSON) _appSyncGraphQLApiAdditionalAuthenticationProviderUserPoolConfig
]
-- | Constructor for 'AppSyncGraphQLApiAdditionalAuthenticationProvider'
-- containing required fields as arguments.
appSyncGraphQLApiAdditionalAuthenticationProvider
:: Val Text -- ^ 'asgqlaaapAuthenticationType'
-> AppSyncGraphQLApiAdditionalAuthenticationProvider
appSyncGraphQLApiAdditionalAuthenticationProvider authenticationTypearg =
AppSyncGraphQLApiAdditionalAuthenticationProvider
{ _appSyncGraphQLApiAdditionalAuthenticationProviderAuthenticationType = authenticationTypearg
, _appSyncGraphQLApiAdditionalAuthenticationProviderOpenIDConnectConfig = Nothing
, _appSyncGraphQLApiAdditionalAuthenticationProviderUserPoolConfig = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-authenticationtype
asgqlaaapAuthenticationType :: Lens' AppSyncGraphQLApiAdditionalAuthenticationProvider (Val Text)
asgqlaaapAuthenticationType = lens _appSyncGraphQLApiAdditionalAuthenticationProviderAuthenticationType (\s a -> s { _appSyncGraphQLApiAdditionalAuthenticationProviderAuthenticationType = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-openidconnectconfig
asgqlaaapOpenIDConnectConfig :: Lens' AppSyncGraphQLApiAdditionalAuthenticationProvider (Maybe AppSyncGraphQLApiOpenIDConnectConfig)
asgqlaaapOpenIDConnectConfig = lens _appSyncGraphQLApiAdditionalAuthenticationProviderOpenIDConnectConfig (\s a -> s { _appSyncGraphQLApiAdditionalAuthenticationProviderOpenIDConnectConfig = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html#cfn-appsync-graphqlapi-additionalauthenticationprovider-userpoolconfig
asgqlaaapUserPoolConfig :: Lens' AppSyncGraphQLApiAdditionalAuthenticationProvider (Maybe AppSyncGraphQLApiCognitoUserPoolConfig)
asgqlaaapUserPoolConfig = lens _appSyncGraphQLApiAdditionalAuthenticationProviderUserPoolConfig (\s a -> s { _appSyncGraphQLApiAdditionalAuthenticationProviderUserPoolConfig = a })