{-# 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.TagDeliveryStream
(
tagDeliveryStream
, TagDeliveryStream
, tdsDeliveryStreamName
, tdsTags
, tagDeliveryStreamResponse
, TagDeliveryStreamResponse
, tdsrsResponseStatus
) 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 TagDeliveryStream = TagDeliveryStream'
{ _tdsDeliveryStreamName :: !Text
, _tdsTags :: !(List1 Tag)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
tagDeliveryStream
:: Text
-> NonEmpty Tag
-> TagDeliveryStream
tagDeliveryStream pDeliveryStreamName_ pTags_ =
TagDeliveryStream'
{_tdsDeliveryStreamName = pDeliveryStreamName_, _tdsTags = _List1 # pTags_}
tdsDeliveryStreamName :: Lens' TagDeliveryStream Text
tdsDeliveryStreamName = lens _tdsDeliveryStreamName (\ s a -> s{_tdsDeliveryStreamName = a})
tdsTags :: Lens' TagDeliveryStream (NonEmpty Tag)
tdsTags = lens _tdsTags (\ s a -> s{_tdsTags = a}) . _List1
instance AWSRequest TagDeliveryStream where
type Rs TagDeliveryStream = TagDeliveryStreamResponse
request = postJSON firehose
response
= receiveEmpty
(\ s h x ->
TagDeliveryStreamResponse' <$> (pure (fromEnum s)))
instance Hashable TagDeliveryStream where
instance NFData TagDeliveryStream where
instance ToHeaders TagDeliveryStream where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Firehose_20150804.TagDeliveryStream" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON TagDeliveryStream where
toJSON TagDeliveryStream'{..}
= object
(catMaybes
[Just
("DeliveryStreamName" .= _tdsDeliveryStreamName),
Just ("Tags" .= _tdsTags)])
instance ToPath TagDeliveryStream where
toPath = const "/"
instance ToQuery TagDeliveryStream where
toQuery = const mempty
newtype TagDeliveryStreamResponse = TagDeliveryStreamResponse'
{ _tdsrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
tagDeliveryStreamResponse
:: Int
-> TagDeliveryStreamResponse
tagDeliveryStreamResponse pResponseStatus_ =
TagDeliveryStreamResponse' {_tdsrsResponseStatus = pResponseStatus_}
tdsrsResponseStatus :: Lens' TagDeliveryStreamResponse Int
tdsrsResponseStatus = lens _tdsrsResponseStatus (\ s a -> s{_tdsrsResponseStatus = a})
instance NFData TagDeliveryStreamResponse where