{-# 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.ListGroupMembers
(
listGroupMembers
, ListGroupMembers
, lgmNextToken
, lgmMaxResults
, lgmOrganizationId
, lgmGroupId
, listGroupMembersResponse
, ListGroupMembersResponse
, lgmrsMembers
, lgmrsNextToken
, lgmrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.WorkMail.Types
import Network.AWS.WorkMail.Types.Product
data ListGroupMembers = ListGroupMembers'
{ _lgmNextToken :: !(Maybe Text)
, _lgmMaxResults :: !(Maybe Nat)
, _lgmOrganizationId :: !Text
, _lgmGroupId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listGroupMembers
:: Text
-> Text
-> ListGroupMembers
listGroupMembers pOrganizationId_ pGroupId_ =
ListGroupMembers'
{ _lgmNextToken = Nothing
, _lgmMaxResults = Nothing
, _lgmOrganizationId = pOrganizationId_
, _lgmGroupId = pGroupId_
}
lgmNextToken :: Lens' ListGroupMembers (Maybe Text)
lgmNextToken = lens _lgmNextToken (\ s a -> s{_lgmNextToken = a})
lgmMaxResults :: Lens' ListGroupMembers (Maybe Natural)
lgmMaxResults = lens _lgmMaxResults (\ s a -> s{_lgmMaxResults = a}) . mapping _Nat
lgmOrganizationId :: Lens' ListGroupMembers Text
lgmOrganizationId = lens _lgmOrganizationId (\ s a -> s{_lgmOrganizationId = a})
lgmGroupId :: Lens' ListGroupMembers Text
lgmGroupId = lens _lgmGroupId (\ s a -> s{_lgmGroupId = a})
instance AWSPager ListGroupMembers where
page rq rs
| stop (rs ^. lgmrsNextToken) = Nothing
| stop (rs ^. lgmrsMembers) = Nothing
| otherwise =
Just $ rq & lgmNextToken .~ rs ^. lgmrsNextToken
instance AWSRequest ListGroupMembers where
type Rs ListGroupMembers = ListGroupMembersResponse
request = postJSON workMail
response
= receiveJSON
(\ s h x ->
ListGroupMembersResponse' <$>
(x .?> "Members" .!@ mempty) <*> (x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable ListGroupMembers where
instance NFData ListGroupMembers where
instance ToHeaders ListGroupMembers where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("WorkMailService.ListGroupMembers" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListGroupMembers where
toJSON ListGroupMembers'{..}
= object
(catMaybes
[("NextToken" .=) <$> _lgmNextToken,
("MaxResults" .=) <$> _lgmMaxResults,
Just ("OrganizationId" .= _lgmOrganizationId),
Just ("GroupId" .= _lgmGroupId)])
instance ToPath ListGroupMembers where
toPath = const "/"
instance ToQuery ListGroupMembers where
toQuery = const mempty
data ListGroupMembersResponse = ListGroupMembersResponse'
{ _lgmrsMembers :: !(Maybe [Member])
, _lgmrsNextToken :: !(Maybe Text)
, _lgmrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listGroupMembersResponse
:: Int
-> ListGroupMembersResponse
listGroupMembersResponse pResponseStatus_ =
ListGroupMembersResponse'
{ _lgmrsMembers = Nothing
, _lgmrsNextToken = Nothing
, _lgmrsResponseStatus = pResponseStatus_
}
lgmrsMembers :: Lens' ListGroupMembersResponse [Member]
lgmrsMembers = lens _lgmrsMembers (\ s a -> s{_lgmrsMembers = a}) . _Default . _Coerce
lgmrsNextToken :: Lens' ListGroupMembersResponse (Maybe Text)
lgmrsNextToken = lens _lgmrsNextToken (\ s a -> s{_lgmrsNextToken = a})
lgmrsResponseStatus :: Lens' ListGroupMembersResponse Int
lgmrsResponseStatus = lens _lgmrsResponseStatus (\ s a -> s{_lgmrsResponseStatus = a})
instance NFData ListGroupMembersResponse where