{-# 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.GetUser
(
getUser
, GetUser
, guAccessToken
, getUserResponse
, GetUserResponse
, gursUserMFASettingList
, gursMFAOptions
, gursPreferredMFASetting
, 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 :: Sensitive Text
} deriving (Eq, Show, Data, Typeable, Generic)
getUser
:: Text
-> GetUser
getUser pAccessToken_ = GetUser' {_guAccessToken = _Sensitive # pAccessToken_}
guAccessToken :: Lens' GetUser Text
guAccessToken = lens _guAccessToken (\ s a -> s{_guAccessToken = a}) . _Sensitive
instance AWSRequest GetUser where
type Rs GetUser = GetUserResponse
request = postJSON cognitoIdentityProvider
response
= receiveJSON
(\ s h x ->
GetUserResponse' <$>
(x .?> "UserMFASettingList" .!@ mempty) <*>
(x .?> "MFAOptions" .!@ mempty)
<*> (x .?> "PreferredMfaSetting")
<*> (pure (fromEnum s))
<*> (x .:> "Username")
<*> (x .?> "UserAttributes" .!@ mempty))
instance Hashable GetUser where
instance NFData GetUser where
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 [Just ("AccessToken" .= _guAccessToken)])
instance ToPath GetUser where
toPath = const "/"
instance ToQuery GetUser where
toQuery = const mempty
data GetUserResponse = GetUserResponse'
{ _gursUserMFASettingList :: !(Maybe [Text])
, _gursMFAOptions :: !(Maybe [MFAOptionType])
, _gursPreferredMFASetting :: !(Maybe Text)
, _gursResponseStatus :: !Int
, _gursUsername :: !(Sensitive Text)
, _gursUserAttributes :: ![AttributeType]
} deriving (Eq, Show, Data, Typeable, Generic)
getUserResponse
:: Int
-> Text
-> GetUserResponse
getUserResponse pResponseStatus_ pUsername_ =
GetUserResponse'
{ _gursUserMFASettingList = Nothing
, _gursMFAOptions = Nothing
, _gursPreferredMFASetting = Nothing
, _gursResponseStatus = pResponseStatus_
, _gursUsername = _Sensitive # pUsername_
, _gursUserAttributes = mempty
}
gursUserMFASettingList :: Lens' GetUserResponse [Text]
gursUserMFASettingList = lens _gursUserMFASettingList (\ s a -> s{_gursUserMFASettingList = a}) . _Default . _Coerce
gursMFAOptions :: Lens' GetUserResponse [MFAOptionType]
gursMFAOptions = lens _gursMFAOptions (\ s a -> s{_gursMFAOptions = a}) . _Default . _Coerce
gursPreferredMFASetting :: Lens' GetUserResponse (Maybe Text)
gursPreferredMFASetting = lens _gursPreferredMFASetting (\ s a -> s{_gursPreferredMFASetting = a})
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 where