{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.CognitoIdentityProvider.AdminInitiateAuth
(
adminInitiateAuth
, AdminInitiateAuth
, aiaClientMetadata
, aiaAuthParameters
, aiaUserPoolId
, aiaClientId
, aiaAuthFlow
, adminInitiateAuthResponse
, AdminInitiateAuthResponse
, aiarsChallengeName
, aiarsChallengeParameters
, aiarsAuthenticationResult
, aiarsSession
, aiarsResponseStatus
) where
import Network.AWS.CognitoIdentityProvider.Types
import Network.AWS.CognitoIdentityProvider.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data AdminInitiateAuth = AdminInitiateAuth'
{ _aiaClientMetadata :: !(Maybe (Map Text Text))
, _aiaAuthParameters :: !(Maybe (Map Text Text))
, _aiaUserPoolId :: !Text
, _aiaClientId :: !(Sensitive Text)
, _aiaAuthFlow :: !AuthFlowType
} deriving (Eq,Read,Show,Data,Typeable,Generic)
adminInitiateAuth
:: Text
-> Text
-> AuthFlowType
-> AdminInitiateAuth
adminInitiateAuth pUserPoolId_ pClientId_ pAuthFlow_ =
AdminInitiateAuth'
{ _aiaClientMetadata = Nothing
, _aiaAuthParameters = Nothing
, _aiaUserPoolId = pUserPoolId_
, _aiaClientId = _Sensitive # pClientId_
, _aiaAuthFlow = pAuthFlow_
}
aiaClientMetadata :: Lens' AdminInitiateAuth (HashMap Text Text)
aiaClientMetadata = lens _aiaClientMetadata (\ s a -> s{_aiaClientMetadata = a}) . _Default . _Map;
aiaAuthParameters :: Lens' AdminInitiateAuth (HashMap Text Text)
aiaAuthParameters = lens _aiaAuthParameters (\ s a -> s{_aiaAuthParameters = a}) . _Default . _Map;
aiaUserPoolId :: Lens' AdminInitiateAuth Text
aiaUserPoolId = lens _aiaUserPoolId (\ s a -> s{_aiaUserPoolId = a});
aiaClientId :: Lens' AdminInitiateAuth Text
aiaClientId = lens _aiaClientId (\ s a -> s{_aiaClientId = a}) . _Sensitive;
aiaAuthFlow :: Lens' AdminInitiateAuth AuthFlowType
aiaAuthFlow = lens _aiaAuthFlow (\ s a -> s{_aiaAuthFlow = a});
instance AWSRequest AdminInitiateAuth where
type Rs AdminInitiateAuth = AdminInitiateAuthResponse
request = postJSON cognitoIdentityProvider
response
= receiveJSON
(\ s h x ->
AdminInitiateAuthResponse' <$>
(x .?> "ChallengeName") <*>
(x .?> "ChallengeParameters" .!@ mempty)
<*> (x .?> "AuthenticationResult")
<*> (x .?> "Session")
<*> (pure (fromEnum s)))
instance Hashable AdminInitiateAuth
instance NFData AdminInitiateAuth
instance ToHeaders AdminInitiateAuth where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSCognitoIdentityProviderService.AdminInitiateAuth"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON AdminInitiateAuth where
toJSON AdminInitiateAuth'{..}
= object
(catMaybes
[("ClientMetadata" .=) <$> _aiaClientMetadata,
("AuthParameters" .=) <$> _aiaAuthParameters,
Just ("UserPoolId" .= _aiaUserPoolId),
Just ("ClientId" .= _aiaClientId),
Just ("AuthFlow" .= _aiaAuthFlow)])
instance ToPath AdminInitiateAuth where
toPath = const "/"
instance ToQuery AdminInitiateAuth where
toQuery = const mempty
data AdminInitiateAuthResponse = AdminInitiateAuthResponse'
{ _aiarsChallengeName :: !(Maybe ChallengeNameType)
, _aiarsChallengeParameters :: !(Maybe (Map Text Text))
, _aiarsAuthenticationResult :: !(Maybe AuthenticationResultType)
, _aiarsSession :: !(Maybe Text)
, _aiarsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
adminInitiateAuthResponse
:: Int
-> AdminInitiateAuthResponse
adminInitiateAuthResponse pResponseStatus_ =
AdminInitiateAuthResponse'
{ _aiarsChallengeName = Nothing
, _aiarsChallengeParameters = Nothing
, _aiarsAuthenticationResult = Nothing
, _aiarsSession = Nothing
, _aiarsResponseStatus = pResponseStatus_
}
aiarsChallengeName :: Lens' AdminInitiateAuthResponse (Maybe ChallengeNameType)
aiarsChallengeName = lens _aiarsChallengeName (\ s a -> s{_aiarsChallengeName = a});
aiarsChallengeParameters :: Lens' AdminInitiateAuthResponse (HashMap Text Text)
aiarsChallengeParameters = lens _aiarsChallengeParameters (\ s a -> s{_aiarsChallengeParameters = a}) . _Default . _Map;
aiarsAuthenticationResult :: Lens' AdminInitiateAuthResponse (Maybe AuthenticationResultType)
aiarsAuthenticationResult = lens _aiarsAuthenticationResult (\ s a -> s{_aiarsAuthenticationResult = a});
aiarsSession :: Lens' AdminInitiateAuthResponse (Maybe Text)
aiarsSession = lens _aiarsSession (\ s a -> s{_aiarsSession = a});
aiarsResponseStatus :: Lens' AdminInitiateAuthResponse Int
aiarsResponseStatus = lens _aiarsResponseStatus (\ s a -> s{_aiarsResponseStatus = a});
instance NFData AdminInitiateAuthResponse