module Network.AWS.Kinesis.ListTagsForStream
(
ListTagsForStream
, listTagsForStream
, ltfsExclusiveStartTagKey
, ltfsLimit
, ltfsStreamName
, ListTagsForStreamResponse
, listTagsForStreamResponse
, ltfsrHasMoreTags
, ltfsrTags
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.Kinesis.Types
import qualified GHC.Exts
data ListTagsForStream = ListTagsForStream
{ _ltfsExclusiveStartTagKey :: Maybe Text
, _ltfsLimit :: Maybe Nat
, _ltfsStreamName :: Text
} deriving (Eq, Ord, Read, Show)
listTagsForStream :: Text
-> ListTagsForStream
listTagsForStream p1 = ListTagsForStream
{ _ltfsStreamName = p1
, _ltfsExclusiveStartTagKey = Nothing
, _ltfsLimit = Nothing
}
ltfsExclusiveStartTagKey :: Lens' ListTagsForStream (Maybe Text)
ltfsExclusiveStartTagKey =
lens _ltfsExclusiveStartTagKey
(\s a -> s { _ltfsExclusiveStartTagKey = a })
ltfsLimit :: Lens' ListTagsForStream (Maybe Natural)
ltfsLimit = lens _ltfsLimit (\s a -> s { _ltfsLimit = a }) . mapping _Nat
ltfsStreamName :: Lens' ListTagsForStream Text
ltfsStreamName = lens _ltfsStreamName (\s a -> s { _ltfsStreamName = a })
data ListTagsForStreamResponse = ListTagsForStreamResponse
{ _ltfsrHasMoreTags :: Bool
, _ltfsrTags :: List "Tags" Tag
} deriving (Eq, Read, Show)
listTagsForStreamResponse :: Bool
-> ListTagsForStreamResponse
listTagsForStreamResponse p1 = ListTagsForStreamResponse
{ _ltfsrHasMoreTags = p1
, _ltfsrTags = mempty
}
ltfsrHasMoreTags :: Lens' ListTagsForStreamResponse Bool
ltfsrHasMoreTags = lens _ltfsrHasMoreTags (\s a -> s { _ltfsrHasMoreTags = a })
ltfsrTags :: Lens' ListTagsForStreamResponse [Tag]
ltfsrTags = lens _ltfsrTags (\s a -> s { _ltfsrTags = a }) . _List
instance ToPath ListTagsForStream where
toPath = const "/"
instance ToQuery ListTagsForStream where
toQuery = const mempty
instance ToHeaders ListTagsForStream
instance ToJSON ListTagsForStream where
toJSON ListTagsForStream{..} = object
[ "StreamName" .= _ltfsStreamName
, "ExclusiveStartTagKey" .= _ltfsExclusiveStartTagKey
, "Limit" .= _ltfsLimit
]
instance AWSRequest ListTagsForStream where
type Sv ListTagsForStream = Kinesis
type Rs ListTagsForStream = ListTagsForStreamResponse
request = post "ListTagsForStream"
response = jsonResponse
instance FromJSON ListTagsForStreamResponse where
parseJSON = withObject "ListTagsForStreamResponse" $ \o -> ListTagsForStreamResponse
<$> o .: "HasMoreTags"
<*> o .:? "Tags" .!= mempty