{-# 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.UpdateDestination
(
updateDestination
, UpdateDestination
, udS3DestinationUpdate
, udRedshiftDestinationUpdate
, udElasticsearchDestinationUpdate
, udDeliveryStreamName
, udCurrentDeliveryStreamVersionId
, udDestinationId
, updateDestinationResponse
, UpdateDestinationResponse
, udrsResponseStatus
) 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 UpdateDestination = UpdateDestination'
{ _udS3DestinationUpdate :: !(Maybe S3DestinationUpdate)
, _udRedshiftDestinationUpdate :: !(Maybe RedshiftDestinationUpdate)
, _udElasticsearchDestinationUpdate :: !(Maybe ElasticsearchDestinationUpdate)
, _udDeliveryStreamName :: !Text
, _udCurrentDeliveryStreamVersionId :: !Text
, _udDestinationId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
updateDestination
:: Text
-> Text
-> Text
-> UpdateDestination
updateDestination pDeliveryStreamName_ pCurrentDeliveryStreamVersionId_ pDestinationId_ =
UpdateDestination'
{ _udS3DestinationUpdate = Nothing
, _udRedshiftDestinationUpdate = Nothing
, _udElasticsearchDestinationUpdate = Nothing
, _udDeliveryStreamName = pDeliveryStreamName_
, _udCurrentDeliveryStreamVersionId = pCurrentDeliveryStreamVersionId_
, _udDestinationId = pDestinationId_
}
udS3DestinationUpdate :: Lens' UpdateDestination (Maybe S3DestinationUpdate)
udS3DestinationUpdate = lens _udS3DestinationUpdate (\ s a -> s{_udS3DestinationUpdate = a});
udRedshiftDestinationUpdate :: Lens' UpdateDestination (Maybe RedshiftDestinationUpdate)
udRedshiftDestinationUpdate = lens _udRedshiftDestinationUpdate (\ s a -> s{_udRedshiftDestinationUpdate = a});
udElasticsearchDestinationUpdate :: Lens' UpdateDestination (Maybe ElasticsearchDestinationUpdate)
udElasticsearchDestinationUpdate = lens _udElasticsearchDestinationUpdate (\ s a -> s{_udElasticsearchDestinationUpdate = a});
udDeliveryStreamName :: Lens' UpdateDestination Text
udDeliveryStreamName = lens _udDeliveryStreamName (\ s a -> s{_udDeliveryStreamName = a});
udCurrentDeliveryStreamVersionId :: Lens' UpdateDestination Text
udCurrentDeliveryStreamVersionId = lens _udCurrentDeliveryStreamVersionId (\ s a -> s{_udCurrentDeliveryStreamVersionId = a});
udDestinationId :: Lens' UpdateDestination Text
udDestinationId = lens _udDestinationId (\ s a -> s{_udDestinationId = a});
instance AWSRequest UpdateDestination where
type Rs UpdateDestination = UpdateDestinationResponse
request = postJSON firehose
response
= receiveEmpty
(\ s h x ->
UpdateDestinationResponse' <$> (pure (fromEnum s)))
instance Hashable UpdateDestination
instance NFData UpdateDestination
instance ToHeaders UpdateDestination where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Firehose_20150804.UpdateDestination" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateDestination where
toJSON UpdateDestination'{..}
= object
(catMaybes
[("S3DestinationUpdate" .=) <$>
_udS3DestinationUpdate,
("RedshiftDestinationUpdate" .=) <$>
_udRedshiftDestinationUpdate,
("ElasticsearchDestinationUpdate" .=) <$>
_udElasticsearchDestinationUpdate,
Just ("DeliveryStreamName" .= _udDeliveryStreamName),
Just
("CurrentDeliveryStreamVersionId" .=
_udCurrentDeliveryStreamVersionId),
Just ("DestinationId" .= _udDestinationId)])
instance ToPath UpdateDestination where
toPath = const "/"
instance ToQuery UpdateDestination where
toQuery = const mempty
newtype UpdateDestinationResponse = UpdateDestinationResponse'
{ _udrsResponseStatus :: Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
updateDestinationResponse
:: Int
-> UpdateDestinationResponse
updateDestinationResponse pResponseStatus_ =
UpdateDestinationResponse'
{ _udrsResponseStatus = pResponseStatus_
}
udrsResponseStatus :: Lens' UpdateDestinationResponse Int
udrsResponseStatus = lens _udrsResponseStatus (\ s a -> s{_udrsResponseStatus = a});
instance NFData UpdateDestinationResponse