{-# 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.RespondToAuthChallenge
(
respondToAuthChallenge
, RespondToAuthChallenge
, rtacAnalyticsMetadata
, rtacChallengeResponses
, rtacUserContextData
, rtacSession
, rtacClientId
, rtacChallengeName
, respondToAuthChallengeResponse
, RespondToAuthChallengeResponse
, rtacrsChallengeName
, rtacrsChallengeParameters
, rtacrsAuthenticationResult
, rtacrsSession
, rtacrsResponseStatus
) 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 RespondToAuthChallenge = RespondToAuthChallenge'
{ _rtacAnalyticsMetadata :: !(Maybe AnalyticsMetadataType)
, _rtacChallengeResponses :: !(Maybe (Map Text Text))
, _rtacUserContextData :: !(Maybe UserContextDataType)
, _rtacSession :: !(Maybe Text)
, _rtacClientId :: !(Sensitive Text)
, _rtacChallengeName :: !ChallengeNameType
} deriving (Eq, Show, Data, Typeable, Generic)
respondToAuthChallenge
:: Text
-> ChallengeNameType
-> RespondToAuthChallenge
respondToAuthChallenge pClientId_ pChallengeName_ =
RespondToAuthChallenge'
{ _rtacAnalyticsMetadata = Nothing
, _rtacChallengeResponses = Nothing
, _rtacUserContextData = Nothing
, _rtacSession = Nothing
, _rtacClientId = _Sensitive # pClientId_
, _rtacChallengeName = pChallengeName_
}
rtacAnalyticsMetadata :: Lens' RespondToAuthChallenge (Maybe AnalyticsMetadataType)
rtacAnalyticsMetadata = lens _rtacAnalyticsMetadata (\ s a -> s{_rtacAnalyticsMetadata = a})
rtacChallengeResponses :: Lens' RespondToAuthChallenge (HashMap Text Text)
rtacChallengeResponses = lens _rtacChallengeResponses (\ s a -> s{_rtacChallengeResponses = a}) . _Default . _Map
rtacUserContextData :: Lens' RespondToAuthChallenge (Maybe UserContextDataType)
rtacUserContextData = lens _rtacUserContextData (\ s a -> s{_rtacUserContextData = a})
rtacSession :: Lens' RespondToAuthChallenge (Maybe Text)
rtacSession = lens _rtacSession (\ s a -> s{_rtacSession = a})
rtacClientId :: Lens' RespondToAuthChallenge Text
rtacClientId = lens _rtacClientId (\ s a -> s{_rtacClientId = a}) . _Sensitive
rtacChallengeName :: Lens' RespondToAuthChallenge ChallengeNameType
rtacChallengeName = lens _rtacChallengeName (\ s a -> s{_rtacChallengeName = a})
instance AWSRequest RespondToAuthChallenge where
type Rs RespondToAuthChallenge =
RespondToAuthChallengeResponse
request = postJSON cognitoIdentityProvider
response
= receiveJSON
(\ s h x ->
RespondToAuthChallengeResponse' <$>
(x .?> "ChallengeName") <*>
(x .?> "ChallengeParameters" .!@ mempty)
<*> (x .?> "AuthenticationResult")
<*> (x .?> "Session")
<*> (pure (fromEnum s)))
instance Hashable RespondToAuthChallenge where
instance NFData RespondToAuthChallenge where
instance ToHeaders RespondToAuthChallenge where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSCognitoIdentityProviderService.RespondToAuthChallenge"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON RespondToAuthChallenge where
toJSON RespondToAuthChallenge'{..}
= object
(catMaybes
[("AnalyticsMetadata" .=) <$> _rtacAnalyticsMetadata,
("ChallengeResponses" .=) <$>
_rtacChallengeResponses,
("UserContextData" .=) <$> _rtacUserContextData,
("Session" .=) <$> _rtacSession,
Just ("ClientId" .= _rtacClientId),
Just ("ChallengeName" .= _rtacChallengeName)])
instance ToPath RespondToAuthChallenge where
toPath = const "/"
instance ToQuery RespondToAuthChallenge where
toQuery = const mempty
data RespondToAuthChallengeResponse = RespondToAuthChallengeResponse'
{ _rtacrsChallengeName :: !(Maybe ChallengeNameType)
, _rtacrsChallengeParameters :: !(Maybe (Map Text Text))
, _rtacrsAuthenticationResult :: !(Maybe AuthenticationResultType)
, _rtacrsSession :: !(Maybe Text)
, _rtacrsResponseStatus :: !Int
} deriving (Eq, Show, Data, Typeable, Generic)
respondToAuthChallengeResponse
:: Int
-> RespondToAuthChallengeResponse
respondToAuthChallengeResponse pResponseStatus_ =
RespondToAuthChallengeResponse'
{ _rtacrsChallengeName = Nothing
, _rtacrsChallengeParameters = Nothing
, _rtacrsAuthenticationResult = Nothing
, _rtacrsSession = Nothing
, _rtacrsResponseStatus = pResponseStatus_
}
rtacrsChallengeName :: Lens' RespondToAuthChallengeResponse (Maybe ChallengeNameType)
rtacrsChallengeName = lens _rtacrsChallengeName (\ s a -> s{_rtacrsChallengeName = a})
rtacrsChallengeParameters :: Lens' RespondToAuthChallengeResponse (HashMap Text Text)
rtacrsChallengeParameters = lens _rtacrsChallengeParameters (\ s a -> s{_rtacrsChallengeParameters = a}) . _Default . _Map
rtacrsAuthenticationResult :: Lens' RespondToAuthChallengeResponse (Maybe AuthenticationResultType)
rtacrsAuthenticationResult = lens _rtacrsAuthenticationResult (\ s a -> s{_rtacrsAuthenticationResult = a})
rtacrsSession :: Lens' RespondToAuthChallengeResponse (Maybe Text)
rtacrsSession = lens _rtacrsSession (\ s a -> s{_rtacrsSession = a})
rtacrsResponseStatus :: Lens' RespondToAuthChallengeResponse Int
rtacrsResponseStatus = lens _rtacrsResponseStatus (\ s a -> s{_rtacrsResponseStatus = a})
instance NFData RespondToAuthChallengeResponse where