{-# 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.MQ.ListUsers -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns a list of all ActiveMQ users. module Network.AWS.MQ.ListUsers ( -- * Creating a Request listUsers , ListUsers -- * Request Lenses , luNextToken , luMaxResults , luBrokerId -- * Destructuring the Response , listUsersResponse , ListUsersResponse -- * Response Lenses , lursUsers , lursNextToken , lursBrokerId , lursMaxResults , lursResponseStatus ) where import Network.AWS.Lens import Network.AWS.MQ.Types import Network.AWS.MQ.Types.Product import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'listUsers' smart constructor. data ListUsers = ListUsers' { _luNextToken :: !(Maybe Text) , _luMaxResults :: !(Maybe Nat) , _luBrokerId :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListUsers' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'luNextToken' - The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty. -- -- * 'luMaxResults' - The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100. -- -- * 'luBrokerId' - The unique ID that Amazon MQ generates for the broker. listUsers :: Text -- ^ 'luBrokerId' -> ListUsers listUsers pBrokerId_ = ListUsers' {_luNextToken = Nothing, _luMaxResults = Nothing, _luBrokerId = pBrokerId_} -- | The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty. luNextToken :: Lens' ListUsers (Maybe Text) luNextToken = lens _luNextToken (\ s a -> s{_luNextToken = a}) -- | The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100. luMaxResults :: Lens' ListUsers (Maybe Natural) luMaxResults = lens _luMaxResults (\ s a -> s{_luMaxResults = a}) . mapping _Nat -- | The unique ID that Amazon MQ generates for the broker. luBrokerId :: Lens' ListUsers Text luBrokerId = lens _luBrokerId (\ s a -> s{_luBrokerId = a}) instance AWSRequest ListUsers where type Rs ListUsers = ListUsersResponse request = get mq response = receiveJSON (\ s h x -> ListUsersResponse' <$> (x .?> "users" .!@ mempty) <*> (x .?> "nextToken") <*> (x .?> "brokerId") <*> (x .?> "maxResults") <*> (pure (fromEnum s))) instance Hashable ListUsers where instance NFData ListUsers where instance ToHeaders ListUsers where toHeaders = const (mconcat ["Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToPath ListUsers where toPath ListUsers'{..} = mconcat ["/v1/brokers/", toBS _luBrokerId, "/users"] instance ToQuery ListUsers where toQuery ListUsers'{..} = mconcat ["nextToken" =: _luNextToken, "maxResults" =: _luMaxResults] -- | /See:/ 'listUsersResponse' smart constructor. data ListUsersResponse = ListUsersResponse' { _lursUsers :: !(Maybe [UserSummary]) , _lursNextToken :: !(Maybe Text) , _lursBrokerId :: !(Maybe Text) , _lursMaxResults :: !(Maybe Int) , _lursResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListUsersResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lursUsers' - Required. The list of all ActiveMQ usernames for the specified broker. -- -- * 'lursNextToken' - The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty. -- -- * 'lursBrokerId' - Required. The unique ID that Amazon MQ generates for the broker. -- -- * 'lursMaxResults' - Required. The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100. -- -- * 'lursResponseStatus' - -- | The response status code. listUsersResponse :: Int -- ^ 'lursResponseStatus' -> ListUsersResponse listUsersResponse pResponseStatus_ = ListUsersResponse' { _lursUsers = Nothing , _lursNextToken = Nothing , _lursBrokerId = Nothing , _lursMaxResults = Nothing , _lursResponseStatus = pResponseStatus_ } -- | Required. The list of all ActiveMQ usernames for the specified broker. lursUsers :: Lens' ListUsersResponse [UserSummary] lursUsers = lens _lursUsers (\ s a -> s{_lursUsers = a}) . _Default . _Coerce -- | The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty. lursNextToken :: Lens' ListUsersResponse (Maybe Text) lursNextToken = lens _lursNextToken (\ s a -> s{_lursNextToken = a}) -- | Required. The unique ID that Amazon MQ generates for the broker. lursBrokerId :: Lens' ListUsersResponse (Maybe Text) lursBrokerId = lens _lursBrokerId (\ s a -> s{_lursBrokerId = a}) -- | Required. The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100. lursMaxResults :: Lens' ListUsersResponse (Maybe Int) lursMaxResults = lens _lursMaxResults (\ s a -> s{_lursMaxResults = a}) -- | -- | The response status code. lursResponseStatus :: Lens' ListUsersResponse Int lursResponseStatus = lens _lursResponseStatus (\ s a -> s{_lursResponseStatus = a}) instance NFData ListUsersResponse where