amazonka-cognito-idp-1.5.0: gen/Network/AWS/CognitoIdentityProvider/ListUsersInGroup.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.CognitoIdentityProvider.ListUsersInGroup
-- Copyright : (c) 2013-2017 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists the users in the specified group.
--
--
-- Requires developer credentials.
--
module Network.AWS.CognitoIdentityProvider.ListUsersInGroup
(
-- * Creating a Request
listUsersInGroup
, ListUsersInGroup
-- * Request Lenses
, luigNextToken
, luigLimit
, luigUserPoolId
, luigGroupName
-- * Destructuring the Response
, listUsersInGroupResponse
, ListUsersInGroupResponse
-- * Response Lenses
, 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
-- | /See:/ 'listUsersInGroup' smart constructor.
data ListUsersInGroup = ListUsersInGroup'
{ _luigNextToken :: !(Maybe Text)
, _luigLimit :: !(Maybe Nat)
, _luigUserPoolId :: !Text
, _luigGroupName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'ListUsersInGroup' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'luigNextToken' - An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
--
-- * 'luigLimit' - The limit of the request to list users.
--
-- * 'luigUserPoolId' - The user pool ID for the user pool.
--
-- * 'luigGroupName' - The name of the group.
listUsersInGroup
:: Text -- ^ 'luigUserPoolId'
-> Text -- ^ 'luigGroupName'
-> ListUsersInGroup
listUsersInGroup pUserPoolId_ pGroupName_ =
ListUsersInGroup'
{ _luigNextToken = Nothing
, _luigLimit = Nothing
, _luigUserPoolId = pUserPoolId_
, _luigGroupName = pGroupName_
}
-- | An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
luigNextToken :: Lens' ListUsersInGroup (Maybe Text)
luigNextToken = lens _luigNextToken (\ s a -> s{_luigNextToken = a});
-- | The limit of the request to list users.
luigLimit :: Lens' ListUsersInGroup (Maybe Natural)
luigLimit = lens _luigLimit (\ s a -> s{_luigLimit = a}) . mapping _Nat;
-- | The user pool ID for the user pool.
luigUserPoolId :: Lens' ListUsersInGroup Text
luigUserPoolId = lens _luigUserPoolId (\ s a -> s{_luigUserPoolId = a});
-- | The name of the group.
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
-- | /See:/ 'listUsersInGroupResponse' smart constructor.
data ListUsersInGroupResponse = ListUsersInGroupResponse'
{ _luigrsUsers :: !(Maybe [UserType])
, _luigrsNextToken :: !(Maybe Text)
, _luigrsResponseStatus :: !Int
} deriving (Eq, Show, Data, Typeable, Generic)
-- | Creates a value of 'ListUsersInGroupResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'luigrsUsers' - The users returned in the request to list users.
--
-- * 'luigrsNextToken' - An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
--
-- * 'luigrsResponseStatus' - -- | The response status code.
listUsersInGroupResponse
:: Int -- ^ 'luigrsResponseStatus'
-> ListUsersInGroupResponse
listUsersInGroupResponse pResponseStatus_ =
ListUsersInGroupResponse'
{ _luigrsUsers = Nothing
, _luigrsNextToken = Nothing
, _luigrsResponseStatus = pResponseStatus_
}
-- | The users returned in the request to list users.
luigrsUsers :: Lens' ListUsersInGroupResponse [UserType]
luigrsUsers = lens _luigrsUsers (\ s a -> s{_luigrsUsers = a}) . _Default . _Coerce;
-- | An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.
luigrsNextToken :: Lens' ListUsersInGroupResponse (Maybe Text)
luigrsNextToken = lens _luigrsNextToken (\ s a -> s{_luigrsNextToken = a});
-- | -- | The response status code.
luigrsResponseStatus :: Lens' ListUsersInGroupResponse Int
luigrsResponseStatus = lens _luigrsResponseStatus (\ s a -> s{_luigrsResponseStatus = a});
instance NFData ListUsersInGroupResponse where