{-# 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.IAM.GetUser
(
getUser
, GetUser
, guUserName
, getUserResponse
, GetUserResponse
, gursResponseStatus
, gursUser
) where
import Network.AWS.IAM.Types
import Network.AWS.IAM.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
newtype GetUser = GetUser'
{ _guUserName :: Maybe Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getUser
:: GetUser
getUser =
GetUser'
{ _guUserName = Nothing
}
guUserName :: Lens' GetUser (Maybe Text)
guUserName = lens _guUserName (\ s a -> s{_guUserName = a});
instance AWSRequest GetUser where
type Rs GetUser = GetUserResponse
request = postQuery iam
response
= receiveXMLWrapper "GetUserResult"
(\ s h x ->
GetUserResponse' <$>
(pure (fromEnum s)) <*> (x .@ "User"))
instance Hashable GetUser
instance NFData GetUser
instance ToHeaders GetUser where
toHeaders = const mempty
instance ToPath GetUser where
toPath = const "/"
instance ToQuery GetUser where
toQuery GetUser'{..}
= mconcat
["Action" =: ("GetUser" :: ByteString),
"Version" =: ("2010-05-08" :: ByteString),
"UserName" =: _guUserName]
data GetUserResponse = GetUserResponse'
{ _gursResponseStatus :: !Int
, _gursUser :: !User
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getUserResponse
:: Int
-> User
-> GetUserResponse
getUserResponse pResponseStatus_ pUser_ =
GetUserResponse'
{ _gursResponseStatus = pResponseStatus_
, _gursUser = pUser_
}
gursResponseStatus :: Lens' GetUserResponse Int
gursResponseStatus = lens _gursResponseStatus (\ s a -> s{_gursResponseStatus = a});
gursUser :: Lens' GetUserResponse User
gursUser = lens _gursUser (\ s a -> s{_gursUser = a});
instance NFData GetUserResponse