{-# 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.WorkMail.DescribeUser
(
describeUser
, DescribeUser
, duOrganizationId
, duUserId
, describeUserResponse
, DescribeUserResponse
, dursEmail
, dursState
, dursUserId
, dursDisabledDate
, dursName
, dursDisplayName
, dursUserRole
, dursEnabledDate
, dursResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkMail.Types
import Network.AWS.WorkMail.Types.Product
data DescribeUser = DescribeUser'
{ _duOrganizationId :: !Text
, _duUserId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeUser
:: Text
-> Text
-> DescribeUser
describeUser pOrganizationId_ pUserId_ =
DescribeUser' {_duOrganizationId = pOrganizationId_, _duUserId = pUserId_}
duOrganizationId :: Lens' DescribeUser Text
duOrganizationId = lens _duOrganizationId (\ s a -> s{_duOrganizationId = a})
duUserId :: Lens' DescribeUser Text
duUserId = lens _duUserId (\ s a -> s{_duUserId = a})
instance AWSRequest DescribeUser where
type Rs DescribeUser = DescribeUserResponse
request = postJSON workMail
response
= receiveJSON
(\ s h x ->
DescribeUserResponse' <$>
(x .?> "Email") <*> (x .?> "State") <*>
(x .?> "UserId")
<*> (x .?> "DisabledDate")
<*> (x .?> "Name")
<*> (x .?> "DisplayName")
<*> (x .?> "UserRole")
<*> (x .?> "EnabledDate")
<*> (pure (fromEnum s)))
instance Hashable DescribeUser where
instance NFData DescribeUser where
instance ToHeaders DescribeUser where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("WorkMailService.DescribeUser" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeUser where
toJSON DescribeUser'{..}
= object
(catMaybes
[Just ("OrganizationId" .= _duOrganizationId),
Just ("UserId" .= _duUserId)])
instance ToPath DescribeUser where
toPath = const "/"
instance ToQuery DescribeUser where
toQuery = const mempty
data DescribeUserResponse = DescribeUserResponse'
{ _dursEmail :: !(Maybe Text)
, _dursState :: !(Maybe EntityState)
, _dursUserId :: !(Maybe Text)
, _dursDisabledDate :: !(Maybe POSIX)
, _dursName :: !(Maybe Text)
, _dursDisplayName :: !(Maybe Text)
, _dursUserRole :: !(Maybe UserRole)
, _dursEnabledDate :: !(Maybe POSIX)
, _dursResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeUserResponse
:: Int
-> DescribeUserResponse
describeUserResponse pResponseStatus_ =
DescribeUserResponse'
{ _dursEmail = Nothing
, _dursState = Nothing
, _dursUserId = Nothing
, _dursDisabledDate = Nothing
, _dursName = Nothing
, _dursDisplayName = Nothing
, _dursUserRole = Nothing
, _dursEnabledDate = Nothing
, _dursResponseStatus = pResponseStatus_
}
dursEmail :: Lens' DescribeUserResponse (Maybe Text)
dursEmail = lens _dursEmail (\ s a -> s{_dursEmail = a})
dursState :: Lens' DescribeUserResponse (Maybe EntityState)
dursState = lens _dursState (\ s a -> s{_dursState = a})
dursUserId :: Lens' DescribeUserResponse (Maybe Text)
dursUserId = lens _dursUserId (\ s a -> s{_dursUserId = a})
dursDisabledDate :: Lens' DescribeUserResponse (Maybe UTCTime)
dursDisabledDate = lens _dursDisabledDate (\ s a -> s{_dursDisabledDate = a}) . mapping _Time
dursName :: Lens' DescribeUserResponse (Maybe Text)
dursName = lens _dursName (\ s a -> s{_dursName = a})
dursDisplayName :: Lens' DescribeUserResponse (Maybe Text)
dursDisplayName = lens _dursDisplayName (\ s a -> s{_dursDisplayName = a})
dursUserRole :: Lens' DescribeUserResponse (Maybe UserRole)
dursUserRole = lens _dursUserRole (\ s a -> s{_dursUserRole = a})
dursEnabledDate :: Lens' DescribeUserResponse (Maybe UTCTime)
dursEnabledDate = lens _dursEnabledDate (\ s a -> s{_dursEnabledDate = a}) . mapping _Time
dursResponseStatus :: Lens' DescribeUserResponse Int
dursResponseStatus = lens _dursResponseStatus (\ s a -> s{_dursResponseStatus = a})
instance NFData DescribeUserResponse where