{-# 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.EFS.DescribeTags
(
describeTags
, DescribeTags
, dtMarker
, dtMaxItems
, dtFileSystemId
, describeTagsResponse
, DescribeTagsResponse
, dtrsMarker
, dtrsNextMarker
, dtrsResponseStatus
, dtrsTags
) where
import Network.AWS.EFS.Types
import Network.AWS.EFS.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeTags = DescribeTags'
{ _dtMarker :: !(Maybe Text)
, _dtMaxItems :: !(Maybe Nat)
, _dtFileSystemId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeTags
:: Text
-> DescribeTags
describeTags pFileSystemId_ =
DescribeTags'
{ _dtMarker = Nothing
, _dtMaxItems = Nothing
, _dtFileSystemId = pFileSystemId_
}
dtMarker :: Lens' DescribeTags (Maybe Text)
dtMarker = lens _dtMarker (\ s a -> s{_dtMarker = a})
dtMaxItems :: Lens' DescribeTags (Maybe Natural)
dtMaxItems = lens _dtMaxItems (\ s a -> s{_dtMaxItems = a}) . mapping _Nat
dtFileSystemId :: Lens' DescribeTags Text
dtFileSystemId = lens _dtFileSystemId (\ s a -> s{_dtFileSystemId = a})
instance AWSPager DescribeTags where
page rq rs
| stop (rs ^. dtrsNextMarker) = Nothing
| stop (rs ^. dtrsTags) = Nothing
| otherwise =
Just $ rq & dtMarker .~ rs ^. dtrsNextMarker
instance AWSRequest DescribeTags where
type Rs DescribeTags = DescribeTagsResponse
request = get efs
response
= receiveJSON
(\ s h x ->
DescribeTagsResponse' <$>
(x .?> "Marker") <*> (x .?> "NextMarker") <*>
(pure (fromEnum s))
<*> (x .?> "Tags" .!@ mempty))
instance Hashable DescribeTags where
instance NFData DescribeTags where
instance ToHeaders DescribeTags where
toHeaders = const mempty
instance ToPath DescribeTags where
toPath DescribeTags'{..}
= mconcat
["/2015-02-01/tags/", toBS _dtFileSystemId, "/"]
instance ToQuery DescribeTags where
toQuery DescribeTags'{..}
= mconcat
["Marker" =: _dtMarker, "MaxItems" =: _dtMaxItems]
data DescribeTagsResponse = DescribeTagsResponse'
{ _dtrsMarker :: !(Maybe Text)
, _dtrsNextMarker :: !(Maybe Text)
, _dtrsResponseStatus :: !Int
, _dtrsTags :: ![Tag]
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeTagsResponse
:: Int
-> DescribeTagsResponse
describeTagsResponse pResponseStatus_ =
DescribeTagsResponse'
{ _dtrsMarker = Nothing
, _dtrsNextMarker = Nothing
, _dtrsResponseStatus = pResponseStatus_
, _dtrsTags = mempty
}
dtrsMarker :: Lens' DescribeTagsResponse (Maybe Text)
dtrsMarker = lens _dtrsMarker (\ s a -> s{_dtrsMarker = a})
dtrsNextMarker :: Lens' DescribeTagsResponse (Maybe Text)
dtrsNextMarker = lens _dtrsNextMarker (\ s a -> s{_dtrsNextMarker = a})
dtrsResponseStatus :: Lens' DescribeTagsResponse Int
dtrsResponseStatus = lens _dtrsResponseStatus (\ s a -> s{_dtrsResponseStatus = a})
dtrsTags :: Lens' DescribeTagsResponse [Tag]
dtrsTags = lens _dtrsTags (\ s a -> s{_dtrsTags = a}) . _Coerce
instance NFData DescribeTagsResponse where