{-# 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.GetTagKeys
(
getTagKeys
, GetTagKeys
, gtkPaginationToken
, getTagKeysResponse
, GetTagKeysResponse
, gtkrsPaginationToken
, gtkrsTagKeys
, gtkrsResponseStatus
) 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
newtype GetTagKeys = GetTagKeys'
{ _gtkPaginationToken :: Maybe Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getTagKeys
:: GetTagKeys
getTagKeys = GetTagKeys' {_gtkPaginationToken = Nothing}
gtkPaginationToken :: Lens' GetTagKeys (Maybe Text)
gtkPaginationToken = lens _gtkPaginationToken (\ s a -> s{_gtkPaginationToken = a})
instance AWSPager GetTagKeys where
page rq rs
| stop (rs ^. gtkrsPaginationToken) = Nothing
| stop (rs ^. gtkrsTagKeys) = Nothing
| otherwise =
Just $ rq &
gtkPaginationToken .~ rs ^. gtkrsPaginationToken
instance AWSRequest GetTagKeys where
type Rs GetTagKeys = GetTagKeysResponse
request = postJSON resourceGroupsTagging
response
= receiveJSON
(\ s h x ->
GetTagKeysResponse' <$>
(x .?> "PaginationToken") <*>
(x .?> "TagKeys" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable GetTagKeys where
instance NFData GetTagKeys where
instance ToHeaders GetTagKeys where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("ResourceGroupsTaggingAPI_20170126.GetTagKeys" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetTagKeys where
toJSON GetTagKeys'{..}
= object
(catMaybes
[("PaginationToken" .=) <$> _gtkPaginationToken])
instance ToPath GetTagKeys where
toPath = const "/"
instance ToQuery GetTagKeys where
toQuery = const mempty
data GetTagKeysResponse = GetTagKeysResponse'
{ _gtkrsPaginationToken :: !(Maybe Text)
, _gtkrsTagKeys :: !(Maybe [Text])
, _gtkrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getTagKeysResponse
:: Int
-> GetTagKeysResponse
getTagKeysResponse pResponseStatus_ =
GetTagKeysResponse'
{ _gtkrsPaginationToken = Nothing
, _gtkrsTagKeys = Nothing
, _gtkrsResponseStatus = pResponseStatus_
}
gtkrsPaginationToken :: Lens' GetTagKeysResponse (Maybe Text)
gtkrsPaginationToken = lens _gtkrsPaginationToken (\ s a -> s{_gtkrsPaginationToken = a})
gtkrsTagKeys :: Lens' GetTagKeysResponse [Text]
gtkrsTagKeys = lens _gtkrsTagKeys (\ s a -> s{_gtkrsTagKeys = a}) . _Default . _Coerce
gtkrsResponseStatus :: Lens' GetTagKeysResponse Int
gtkrsResponseStatus = lens _gtkrsResponseStatus (\ s a -> s{_gtkrsResponseStatus = a})
instance NFData GetTagKeysResponse where