{-# 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.Firehose.ListTagsForDeliveryStream
(
listTagsForDeliveryStream
, ListTagsForDeliveryStream
, ltfdsLimit
, ltfdsExclusiveStartTagKey
, ltfdsDeliveryStreamName
, listTagsForDeliveryStreamResponse
, ListTagsForDeliveryStreamResponse
, ltfdsrsResponseStatus
, ltfdsrsTags
, ltfdsrsHasMoreTags
) where
import Network.AWS.Firehose.Types
import Network.AWS.Firehose.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListTagsForDeliveryStream = ListTagsForDeliveryStream'
{ _ltfdsLimit :: !(Maybe Nat)
, _ltfdsExclusiveStartTagKey :: !(Maybe Text)
, _ltfdsDeliveryStreamName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listTagsForDeliveryStream
:: Text
-> ListTagsForDeliveryStream
listTagsForDeliveryStream pDeliveryStreamName_ =
ListTagsForDeliveryStream'
{ _ltfdsLimit = Nothing
, _ltfdsExclusiveStartTagKey = Nothing
, _ltfdsDeliveryStreamName = pDeliveryStreamName_
}
ltfdsLimit :: Lens' ListTagsForDeliveryStream (Maybe Natural)
ltfdsLimit = lens _ltfdsLimit (\ s a -> s{_ltfdsLimit = a}) . mapping _Nat
ltfdsExclusiveStartTagKey :: Lens' ListTagsForDeliveryStream (Maybe Text)
ltfdsExclusiveStartTagKey = lens _ltfdsExclusiveStartTagKey (\ s a -> s{_ltfdsExclusiveStartTagKey = a})
ltfdsDeliveryStreamName :: Lens' ListTagsForDeliveryStream Text
ltfdsDeliveryStreamName = lens _ltfdsDeliveryStreamName (\ s a -> s{_ltfdsDeliveryStreamName = a})
instance AWSRequest ListTagsForDeliveryStream where
type Rs ListTagsForDeliveryStream =
ListTagsForDeliveryStreamResponse
request = postJSON firehose
response
= receiveJSON
(\ s h x ->
ListTagsForDeliveryStreamResponse' <$>
(pure (fromEnum s)) <*> (x .?> "Tags" .!@ mempty) <*>
(x .:> "HasMoreTags"))
instance Hashable ListTagsForDeliveryStream where
instance NFData ListTagsForDeliveryStream where
instance ToHeaders ListTagsForDeliveryStream where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Firehose_20150804.ListTagsForDeliveryStream" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListTagsForDeliveryStream where
toJSON ListTagsForDeliveryStream'{..}
= object
(catMaybes
[("Limit" .=) <$> _ltfdsLimit,
("ExclusiveStartTagKey" .=) <$>
_ltfdsExclusiveStartTagKey,
Just
("DeliveryStreamName" .= _ltfdsDeliveryStreamName)])
instance ToPath ListTagsForDeliveryStream where
toPath = const "/"
instance ToQuery ListTagsForDeliveryStream where
toQuery = const mempty
data ListTagsForDeliveryStreamResponse = ListTagsForDeliveryStreamResponse'
{ _ltfdsrsResponseStatus :: !Int
, _ltfdsrsTags :: ![Tag]
, _ltfdsrsHasMoreTags :: !Bool
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listTagsForDeliveryStreamResponse
:: Int
-> Bool
-> ListTagsForDeliveryStreamResponse
listTagsForDeliveryStreamResponse pResponseStatus_ pHasMoreTags_ =
ListTagsForDeliveryStreamResponse'
{ _ltfdsrsResponseStatus = pResponseStatus_
, _ltfdsrsTags = mempty
, _ltfdsrsHasMoreTags = pHasMoreTags_
}
ltfdsrsResponseStatus :: Lens' ListTagsForDeliveryStreamResponse Int
ltfdsrsResponseStatus = lens _ltfdsrsResponseStatus (\ s a -> s{_ltfdsrsResponseStatus = a})
ltfdsrsTags :: Lens' ListTagsForDeliveryStreamResponse [Tag]
ltfdsrsTags = lens _ltfdsrsTags (\ s a -> s{_ltfdsrsTags = a}) . _Coerce
ltfdsrsHasMoreTags :: Lens' ListTagsForDeliveryStreamResponse Bool
ltfdsrsHasMoreTags = lens _ltfdsrsHasMoreTags (\ s a -> s{_ltfdsrsHasMoreTags = a})
instance NFData ListTagsForDeliveryStreamResponse
where