amazonka-kinesis-firehose-1.4.5: gen/Network/AWS/Firehose/ListDeliveryStreams.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.Firehose.ListDeliveryStreams
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists your delivery streams.
--
--
-- The number of delivery streams might be too large to return using a single call to 'ListDeliveryStreams' . You can limit the number of delivery streams returned, using the __Limit__ parameter. To determine whether there are more delivery streams to list, check the value of __HasMoreDeliveryStreams__ in the output. If there are more delivery streams to list, you can request them by specifying the name of the last delivery stream returned in the call in the __ExclusiveStartDeliveryStreamName__ parameter of a subsequent call.
--
module Network.AWS.Firehose.ListDeliveryStreams
(
-- * Creating a Request
listDeliveryStreams
, ListDeliveryStreams
-- * Request Lenses
, ldsLimit
, ldsExclusiveStartDeliveryStreamName
-- * Destructuring the Response
, listDeliveryStreamsResponse
, ListDeliveryStreamsResponse
-- * Response Lenses
, ldsrsResponseStatus
, ldsrsDeliveryStreamNames
, ldsrsHasMoreDeliveryStreams
) 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
-- | Contains the parameters for 'ListDeliveryStreams' .
--
--
--
-- /See:/ 'listDeliveryStreams' smart constructor.
data ListDeliveryStreams = ListDeliveryStreams'
{ _ldsLimit :: !(Maybe Nat)
, _ldsExclusiveStartDeliveryStreamName :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ListDeliveryStreams' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ldsLimit' - The maximum number of delivery streams to list.
--
-- * 'ldsExclusiveStartDeliveryStreamName' - The name of the delivery stream to start the list with.
listDeliveryStreams
:: ListDeliveryStreams
listDeliveryStreams =
ListDeliveryStreams'
{ _ldsLimit = Nothing
, _ldsExclusiveStartDeliveryStreamName = Nothing
}
-- | The maximum number of delivery streams to list.
ldsLimit :: Lens' ListDeliveryStreams (Maybe Natural)
ldsLimit = lens _ldsLimit (\ s a -> s{_ldsLimit = a}) . mapping _Nat;
-- | The name of the delivery stream to start the list with.
ldsExclusiveStartDeliveryStreamName :: Lens' ListDeliveryStreams (Maybe Text)
ldsExclusiveStartDeliveryStreamName = lens _ldsExclusiveStartDeliveryStreamName (\ s a -> s{_ldsExclusiveStartDeliveryStreamName = a});
instance AWSRequest ListDeliveryStreams where
type Rs ListDeliveryStreams =
ListDeliveryStreamsResponse
request = postJSON firehose
response
= receiveJSON
(\ s h x ->
ListDeliveryStreamsResponse' <$>
(pure (fromEnum s)) <*>
(x .?> "DeliveryStreamNames" .!@ mempty)
<*> (x .:> "HasMoreDeliveryStreams"))
instance Hashable ListDeliveryStreams
instance NFData ListDeliveryStreams
instance ToHeaders ListDeliveryStreams where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Firehose_20150804.ListDeliveryStreams" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListDeliveryStreams where
toJSON ListDeliveryStreams'{..}
= object
(catMaybes
[("Limit" .=) <$> _ldsLimit,
("ExclusiveStartDeliveryStreamName" .=) <$>
_ldsExclusiveStartDeliveryStreamName])
instance ToPath ListDeliveryStreams where
toPath = const "/"
instance ToQuery ListDeliveryStreams where
toQuery = const mempty
-- | Contains the output of 'ListDeliveryStreams' .
--
--
--
-- /See:/ 'listDeliveryStreamsResponse' smart constructor.
data ListDeliveryStreamsResponse = ListDeliveryStreamsResponse'
{ _ldsrsResponseStatus :: !Int
, _ldsrsDeliveryStreamNames :: ![Text]
, _ldsrsHasMoreDeliveryStreams :: !Bool
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ListDeliveryStreamsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'ldsrsResponseStatus' - -- | The response status code.
--
-- * 'ldsrsDeliveryStreamNames' - The names of the delivery streams.
--
-- * 'ldsrsHasMoreDeliveryStreams' - Indicates whether there are more delivery streams available to list.
listDeliveryStreamsResponse
:: Int -- ^ 'ldsrsResponseStatus'
-> Bool -- ^ 'ldsrsHasMoreDeliveryStreams'
-> ListDeliveryStreamsResponse
listDeliveryStreamsResponse pResponseStatus_ pHasMoreDeliveryStreams_ =
ListDeliveryStreamsResponse'
{ _ldsrsResponseStatus = pResponseStatus_
, _ldsrsDeliveryStreamNames = mempty
, _ldsrsHasMoreDeliveryStreams = pHasMoreDeliveryStreams_
}
-- | -- | The response status code.
ldsrsResponseStatus :: Lens' ListDeliveryStreamsResponse Int
ldsrsResponseStatus = lens _ldsrsResponseStatus (\ s a -> s{_ldsrsResponseStatus = a});
-- | The names of the delivery streams.
ldsrsDeliveryStreamNames :: Lens' ListDeliveryStreamsResponse [Text]
ldsrsDeliveryStreamNames = lens _ldsrsDeliveryStreamNames (\ s a -> s{_ldsrsDeliveryStreamNames = a}) . _Coerce;
-- | Indicates whether there are more delivery streams available to list.
ldsrsHasMoreDeliveryStreams :: Lens' ListDeliveryStreamsResponse Bool
ldsrsHasMoreDeliveryStreams = lens _ldsrsHasMoreDeliveryStreams (\ s a -> s{_ldsrsHasMoreDeliveryStreams = a});
instance NFData ListDeliveryStreamsResponse