module Network.AWS.CognitoIdentityProvider.GetUser
(
getUser
, GetUser
, guAccessToken
, getUserResponse
, GetUserResponse
, gursMFAOptions
, gursResponseStatus
, gursUsername
, gursUserAttributes
) 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
newtype GetUser = GetUser'
{ _guAccessToken :: Maybe (Sensitive Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getUser
:: GetUser
getUser =
GetUser'
{ _guAccessToken = Nothing
}
guAccessToken :: Lens' GetUser (Maybe Text)
guAccessToken = lens _guAccessToken (\ s a -> s{_guAccessToken = a}) . mapping _Sensitive;
instance AWSRequest GetUser where
type Rs GetUser = GetUserResponse
request = postJSON cognitoIdentityProvider
response
= receiveJSON
(\ s h x ->
GetUserResponse' <$>
(x .?> "MFAOptions" .!@ mempty) <*>
(pure (fromEnum s))
<*> (x .:> "Username")
<*> (x .?> "UserAttributes" .!@ mempty))
instance Hashable GetUser
instance NFData GetUser
instance ToHeaders GetUser where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSCognitoIdentityProviderService.GetUser" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetUser where
toJSON GetUser'{..}
= object
(catMaybes [("AccessToken" .=) <$> _guAccessToken])
instance ToPath GetUser where
toPath = const "/"
instance ToQuery GetUser where
toQuery = const mempty
data GetUserResponse = GetUserResponse'
{ _gursMFAOptions :: !(Maybe [MFAOptionType])
, _gursResponseStatus :: !Int
, _gursUsername :: !(Sensitive Text)
, _gursUserAttributes :: ![AttributeType]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getUserResponse
:: Int
-> Text
-> GetUserResponse
getUserResponse pResponseStatus_ pUsername_ =
GetUserResponse'
{ _gursMFAOptions = Nothing
, _gursResponseStatus = pResponseStatus_
, _gursUsername = _Sensitive # pUsername_
, _gursUserAttributes = mempty
}
gursMFAOptions :: Lens' GetUserResponse [MFAOptionType]
gursMFAOptions = lens _gursMFAOptions (\ s a -> s{_gursMFAOptions = a}) . _Default . _Coerce;
gursResponseStatus :: Lens' GetUserResponse Int
gursResponseStatus = lens _gursResponseStatus (\ s a -> s{_gursResponseStatus = a});
gursUsername :: Lens' GetUserResponse Text
gursUsername = lens _gursUsername (\ s a -> s{_gursUsername = a}) . _Sensitive;
gursUserAttributes :: Lens' GetUserResponse [AttributeType]
gursUserAttributes = lens _gursUserAttributes (\ s a -> s{_gursUserAttributes = a}) . _Coerce;
instance NFData GetUserResponse