{-# 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.ListUsersInGroup
(
listUsersInGroup
, ListUsersInGroup
, luigNextToken
, luigLimit
, luigUserPoolId
, luigGroupName
, listUsersInGroupResponse
, ListUsersInGroupResponse
, luigrsUsers
, luigrsNextToken
, luigrsResponseStatus
) 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
data ListUsersInGroup = ListUsersInGroup'
{ _luigNextToken :: !(Maybe Text)
, _luigLimit :: !(Maybe Nat)
, _luigUserPoolId :: !Text
, _luigGroupName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listUsersInGroup
:: Text
-> Text
-> ListUsersInGroup
listUsersInGroup pUserPoolId_ pGroupName_ =
ListUsersInGroup'
{ _luigNextToken = Nothing
, _luigLimit = Nothing
, _luigUserPoolId = pUserPoolId_
, _luigGroupName = pGroupName_
}
luigNextToken :: Lens' ListUsersInGroup (Maybe Text)
luigNextToken = lens _luigNextToken (\ s a -> s{_luigNextToken = a})
luigLimit :: Lens' ListUsersInGroup (Maybe Natural)
luigLimit = lens _luigLimit (\ s a -> s{_luigLimit = a}) . mapping _Nat
luigUserPoolId :: Lens' ListUsersInGroup Text
luigUserPoolId = lens _luigUserPoolId (\ s a -> s{_luigUserPoolId = a})
luigGroupName :: Lens' ListUsersInGroup Text
luigGroupName = lens _luigGroupName (\ s a -> s{_luigGroupName = a})
instance AWSRequest ListUsersInGroup where
type Rs ListUsersInGroup = ListUsersInGroupResponse
request = postJSON cognitoIdentityProvider
response
= receiveJSON
(\ s h x ->
ListUsersInGroupResponse' <$>
(x .?> "Users" .!@ mempty) <*> (x .?> "NextToken")
<*> (pure (fromEnum s)))
instance Hashable ListUsersInGroup where
instance NFData ListUsersInGroup where
instance ToHeaders ListUsersInGroup where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSCognitoIdentityProviderService.ListUsersInGroup"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListUsersInGroup where
toJSON ListUsersInGroup'{..}
= object
(catMaybes
[("NextToken" .=) <$> _luigNextToken,
("Limit" .=) <$> _luigLimit,
Just ("UserPoolId" .= _luigUserPoolId),
Just ("GroupName" .= _luigGroupName)])
instance ToPath ListUsersInGroup where
toPath = const "/"
instance ToQuery ListUsersInGroup where
toQuery = const mempty
data ListUsersInGroupResponse = ListUsersInGroupResponse'
{ _luigrsUsers :: !(Maybe [UserType])
, _luigrsNextToken :: !(Maybe Text)
, _luigrsResponseStatus :: !Int
} deriving (Eq, Show, Data, Typeable, Generic)
listUsersInGroupResponse
:: Int
-> ListUsersInGroupResponse
listUsersInGroupResponse pResponseStatus_ =
ListUsersInGroupResponse'
{ _luigrsUsers = Nothing
, _luigrsNextToken = Nothing
, _luigrsResponseStatus = pResponseStatus_
}
luigrsUsers :: Lens' ListUsersInGroupResponse [UserType]
luigrsUsers = lens _luigrsUsers (\ s a -> s{_luigrsUsers = a}) . _Default . _Coerce
luigrsNextToken :: Lens' ListUsersInGroupResponse (Maybe Text)
luigrsNextToken = lens _luigrsNextToken (\ s a -> s{_luigrsNextToken = a})
luigrsResponseStatus :: Lens' ListUsersInGroupResponse Int
luigrsResponseStatus = lens _luigrsResponseStatus (\ s a -> s{_luigrsResponseStatus = a})
instance NFData ListUsersInGroupResponse where