{-# 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.CloudHSMv2.ListTags -- Copyright : (c) 2013-2017 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Gets a list of tags for the specified AWS CloudHSM cluster. -- -- -- This is a paginated operation, which means that each response might contain only a subset of all the tags. When the response contains only a subset of tags, it includes a @NextToken@ value. Use this value in a subsequent @ListTags@ request to get more tags. When you receive a response with no @NextToken@ (or an empty or null value), that means there are no more tags to get. -- module Network.AWS.CloudHSMv2.ListTags ( -- * Creating a Request listTags , ListTags -- * Request Lenses , ltNextToken , ltMaxResults , ltResourceId -- * Destructuring the Response , listTagsResponse , ListTagsResponse -- * Response Lenses , ltrsNextToken , ltrsResponseStatus , ltrsTagList ) where import Network.AWS.CloudHSMv2.Types import Network.AWS.CloudHSMv2.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'listTags' smart constructor. data ListTags = ListTags' { _ltNextToken :: !(Maybe Text) , _ltMaxResults :: !(Maybe Nat) , _ltResourceId :: !Text } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListTags' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ltNextToken' - The @NextToken@ value that you received in the previous response. Use this value to get more tags. -- -- * 'ltMaxResults' - The maximum number of tags to return in the response. When there are more tags than the number you specify, the response contains a @NextToken@ value. -- -- * 'ltResourceId' - The cluster identifier (ID) for the cluster whose tags you are getting. To find the cluster ID, use 'DescribeClusters' . listTags :: Text -- ^ 'ltResourceId' -> ListTags listTags pResourceId_ = ListTags' { _ltNextToken = Nothing , _ltMaxResults = Nothing , _ltResourceId = pResourceId_ } -- | The @NextToken@ value that you received in the previous response. Use this value to get more tags. ltNextToken :: Lens' ListTags (Maybe Text) ltNextToken = lens _ltNextToken (\ s a -> s{_ltNextToken = a}); -- | The maximum number of tags to return in the response. When there are more tags than the number you specify, the response contains a @NextToken@ value. ltMaxResults :: Lens' ListTags (Maybe Natural) ltMaxResults = lens _ltMaxResults (\ s a -> s{_ltMaxResults = a}) . mapping _Nat; -- | The cluster identifier (ID) for the cluster whose tags you are getting. To find the cluster ID, use 'DescribeClusters' . ltResourceId :: Lens' ListTags Text ltResourceId = lens _ltResourceId (\ s a -> s{_ltResourceId = a}); instance AWSRequest ListTags where type Rs ListTags = ListTagsResponse request = postJSON cloudHSMv2 response = receiveJSON (\ s h x -> ListTagsResponse' <$> (x .?> "NextToken") <*> (pure (fromEnum s)) <*> (x .:> "TagList")) instance Hashable ListTags where instance NFData ListTags where instance ToHeaders ListTags where toHeaders = const (mconcat ["X-Amz-Target" =# ("BaldrApiService.ListTags" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON ListTags where toJSON ListTags'{..} = object (catMaybes [("NextToken" .=) <$> _ltNextToken, ("MaxResults" .=) <$> _ltMaxResults, Just ("ResourceId" .= _ltResourceId)]) instance ToPath ListTags where toPath = const "/" instance ToQuery ListTags where toQuery = const mempty -- | /See:/ 'listTagsResponse' smart constructor. data ListTagsResponse = ListTagsResponse' { _ltrsNextToken :: !(Maybe Text) , _ltrsResponseStatus :: !Int , _ltrsTagList :: !(List1 Tag) } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'ListTagsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ltrsNextToken' - An opaque string that indicates that the response contains only a subset of tags. Use this value in a subsequent @ListTags@ request to get more tags. -- -- * 'ltrsResponseStatus' - -- | The response status code. -- -- * 'ltrsTagList' - A list of tags. listTagsResponse :: Int -- ^ 'ltrsResponseStatus' -> NonEmpty Tag -- ^ 'ltrsTagList' -> ListTagsResponse listTagsResponse pResponseStatus_ pTagList_ = ListTagsResponse' { _ltrsNextToken = Nothing , _ltrsResponseStatus = pResponseStatus_ , _ltrsTagList = _List1 # pTagList_ } -- | An opaque string that indicates that the response contains only a subset of tags. Use this value in a subsequent @ListTags@ request to get more tags. ltrsNextToken :: Lens' ListTagsResponse (Maybe Text) ltrsNextToken = lens _ltrsNextToken (\ s a -> s{_ltrsNextToken = a}); -- | -- | The response status code. ltrsResponseStatus :: Lens' ListTagsResponse Int ltrsResponseStatus = lens _ltrsResponseStatus (\ s a -> s{_ltrsResponseStatus = a}); -- | A list of tags. ltrsTagList :: Lens' ListTagsResponse (NonEmpty Tag) ltrsTagList = lens _ltrsTagList (\ s a -> s{_ltrsTagList = a}) . _List1; instance NFData ListTagsResponse where