{-# 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.KinesisVideo.TagStream
(
tagStream
, TagStream
, tsStreamARN
, tsStreamName
, tsTags
, tagStreamResponse
, TagStreamResponse
, tsrsResponseStatus
) where
import Network.AWS.KinesisVideo.Types
import Network.AWS.KinesisVideo.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data TagStream = TagStream'
{ _tsStreamARN :: !(Maybe Text)
, _tsStreamName :: !(Maybe Text)
, _tsTags :: !(Map Text Text)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
tagStream
:: TagStream
tagStream =
TagStream' {_tsStreamARN = Nothing, _tsStreamName = Nothing, _tsTags = mempty}
tsStreamARN :: Lens' TagStream (Maybe Text)
tsStreamARN = lens _tsStreamARN (\ s a -> s{_tsStreamARN = a})
tsStreamName :: Lens' TagStream (Maybe Text)
tsStreamName = lens _tsStreamName (\ s a -> s{_tsStreamName = a})
tsTags :: Lens' TagStream (HashMap Text Text)
tsTags = lens _tsTags (\ s a -> s{_tsTags = a}) . _Map
instance AWSRequest TagStream where
type Rs TagStream = TagStreamResponse
request = postJSON kinesisVideo
response
= receiveEmpty
(\ s h x ->
TagStreamResponse' <$> (pure (fromEnum s)))
instance Hashable TagStream where
instance NFData TagStream where
instance ToHeaders TagStream where
toHeaders = const mempty
instance ToJSON TagStream where
toJSON TagStream'{..}
= object
(catMaybes
[("StreamARN" .=) <$> _tsStreamARN,
("StreamName" .=) <$> _tsStreamName,
Just ("Tags" .= _tsTags)])
instance ToPath TagStream where
toPath = const "/tagStream"
instance ToQuery TagStream where
toQuery = const mempty
newtype TagStreamResponse = TagStreamResponse'
{ _tsrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
tagStreamResponse
:: Int
-> TagStreamResponse
tagStreamResponse pResponseStatus_ =
TagStreamResponse' {_tsrsResponseStatus = pResponseStatus_}
tsrsResponseStatus :: Lens' TagStreamResponse Int
tsrsResponseStatus = lens _tsrsResponseStatus (\ s a -> s{_tsrsResponseStatus = a})
instance NFData TagStreamResponse where