{-# 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.ResourceGroupsTagging.GetTagValues
(
getTagValues
, GetTagValues
, gtvPaginationToken
, gtvKey
, getTagValuesResponse
, GetTagValuesResponse
, gtvrsPaginationToken
, gtvrsTagValues
, gtvrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.ResourceGroupsTagging.Types
import Network.AWS.ResourceGroupsTagging.Types.Product
import Network.AWS.Response
data GetTagValues = GetTagValues'
{ _gtvPaginationToken :: !(Maybe Text)
, _gtvKey :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getTagValues
:: Text
-> GetTagValues
getTagValues pKey_ =
GetTagValues' {_gtvPaginationToken = Nothing, _gtvKey = pKey_}
gtvPaginationToken :: Lens' GetTagValues (Maybe Text)
gtvPaginationToken = lens _gtvPaginationToken (\ s a -> s{_gtvPaginationToken = a})
gtvKey :: Lens' GetTagValues Text
gtvKey = lens _gtvKey (\ s a -> s{_gtvKey = a})
instance AWSPager GetTagValues where
page rq rs
| stop (rs ^. gtvrsPaginationToken) = Nothing
| stop (rs ^. gtvrsTagValues) = Nothing
| otherwise =
Just $ rq &
gtvPaginationToken .~ rs ^. gtvrsPaginationToken
instance AWSRequest GetTagValues where
type Rs GetTagValues = GetTagValuesResponse
request = postJSON resourceGroupsTagging
response
= receiveJSON
(\ s h x ->
GetTagValuesResponse' <$>
(x .?> "PaginationToken") <*>
(x .?> "TagValues" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable GetTagValues where
instance NFData GetTagValues where
instance ToHeaders GetTagValues where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("ResourceGroupsTaggingAPI_20170126.GetTagValues" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetTagValues where
toJSON GetTagValues'{..}
= object
(catMaybes
[("PaginationToken" .=) <$> _gtvPaginationToken,
Just ("Key" .= _gtvKey)])
instance ToPath GetTagValues where
toPath = const "/"
instance ToQuery GetTagValues where
toQuery = const mempty
data GetTagValuesResponse = GetTagValuesResponse'
{ _gtvrsPaginationToken :: !(Maybe Text)
, _gtvrsTagValues :: !(Maybe [Text])
, _gtvrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getTagValuesResponse
:: Int
-> GetTagValuesResponse
getTagValuesResponse pResponseStatus_ =
GetTagValuesResponse'
{ _gtvrsPaginationToken = Nothing
, _gtvrsTagValues = Nothing
, _gtvrsResponseStatus = pResponseStatus_
}
gtvrsPaginationToken :: Lens' GetTagValuesResponse (Maybe Text)
gtvrsPaginationToken = lens _gtvrsPaginationToken (\ s a -> s{_gtvrsPaginationToken = a})
gtvrsTagValues :: Lens' GetTagValuesResponse [Text]
gtvrsTagValues = lens _gtvrsTagValues (\ s a -> s{_gtvrsTagValues = a}) . _Default . _Coerce
gtvrsResponseStatus :: Lens' GetTagValuesResponse Int
gtvrsResponseStatus = lens _gtvrsResponseStatus (\ s a -> s{_gtvrsResponseStatus = a})
instance NFData GetTagValuesResponse where