{-# 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.ListResourceDelegates
(
listResourceDelegates
, ListResourceDelegates
, lrdNextToken
, lrdMaxResults
, lrdOrganizationId
, lrdResourceId
, listResourceDelegatesResponse
, ListResourceDelegatesResponse
, lrdrsDelegates
, lrdrsNextToken
, lrdrsResponseStatus
) 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 ListResourceDelegates = ListResourceDelegates'
{ _lrdNextToken :: !(Maybe Text)
, _lrdMaxResults :: !(Maybe Nat)
, _lrdOrganizationId :: !Text
, _lrdResourceId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listResourceDelegates
:: Text
-> Text
-> ListResourceDelegates
listResourceDelegates pOrganizationId_ pResourceId_ =
ListResourceDelegates'
{ _lrdNextToken = Nothing
, _lrdMaxResults = Nothing
, _lrdOrganizationId = pOrganizationId_
, _lrdResourceId = pResourceId_
}
lrdNextToken :: Lens' ListResourceDelegates (Maybe Text)
lrdNextToken = lens _lrdNextToken (\ s a -> s{_lrdNextToken = a})
lrdMaxResults :: Lens' ListResourceDelegates (Maybe Natural)
lrdMaxResults = lens _lrdMaxResults (\ s a -> s{_lrdMaxResults = a}) . mapping _Nat
lrdOrganizationId :: Lens' ListResourceDelegates Text
lrdOrganizationId = lens _lrdOrganizationId (\ s a -> s{_lrdOrganizationId = a})
lrdResourceId :: Lens' ListResourceDelegates Text
lrdResourceId = lens _lrdResourceId (\ s a -> s{_lrdResourceId = a})
instance AWSRequest ListResourceDelegates where
type Rs ListResourceDelegates =
ListResourceDelegatesResponse
request = postJSON workMail
response
= receiveJSON
(\ s h x ->
ListResourceDelegatesResponse' <$>
(x .?> "Delegates" .!@ mempty) <*>
(x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable ListResourceDelegates where
instance NFData ListResourceDelegates where
instance ToHeaders ListResourceDelegates where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("WorkMailService.ListResourceDelegates" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListResourceDelegates where
toJSON ListResourceDelegates'{..}
= object
(catMaybes
[("NextToken" .=) <$> _lrdNextToken,
("MaxResults" .=) <$> _lrdMaxResults,
Just ("OrganizationId" .= _lrdOrganizationId),
Just ("ResourceId" .= _lrdResourceId)])
instance ToPath ListResourceDelegates where
toPath = const "/"
instance ToQuery ListResourceDelegates where
toQuery = const mempty
data ListResourceDelegatesResponse = ListResourceDelegatesResponse'
{ _lrdrsDelegates :: !(Maybe [Delegate])
, _lrdrsNextToken :: !(Maybe Text)
, _lrdrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listResourceDelegatesResponse
:: Int
-> ListResourceDelegatesResponse
listResourceDelegatesResponse pResponseStatus_ =
ListResourceDelegatesResponse'
{ _lrdrsDelegates = Nothing
, _lrdrsNextToken = Nothing
, _lrdrsResponseStatus = pResponseStatus_
}
lrdrsDelegates :: Lens' ListResourceDelegatesResponse [Delegate]
lrdrsDelegates = lens _lrdrsDelegates (\ s a -> s{_lrdrsDelegates = a}) . _Default . _Coerce
lrdrsNextToken :: Lens' ListResourceDelegatesResponse (Maybe Text)
lrdrsNextToken = lens _lrdrsNextToken (\ s a -> s{_lrdrsNextToken = a})
lrdrsResponseStatus :: Lens' ListResourceDelegatesResponse Int
lrdrsResponseStatus = lens _lrdrsResponseStatus (\ s a -> s{_lrdrsResponseStatus = a})
instance NFData ListResourceDelegatesResponse where