{-# 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.CloudWatchLogs.DescribeSubscriptionFilters
(
describeSubscriptionFilters
, DescribeSubscriptionFilters
, dsfFilterNamePrefix
, dsfNextToken
, dsfLimit
, dsfLogGroupName
, describeSubscriptionFiltersResponse
, DescribeSubscriptionFiltersResponse
, dsfrsSubscriptionFilters
, dsfrsNextToken
, dsfrsResponseStatus
) where
import Network.AWS.CloudWatchLogs.Types
import Network.AWS.CloudWatchLogs.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeSubscriptionFilters = DescribeSubscriptionFilters'
{ _dsfFilterNamePrefix :: !(Maybe Text)
, _dsfNextToken :: !(Maybe Text)
, _dsfLimit :: !(Maybe Nat)
, _dsfLogGroupName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeSubscriptionFilters
:: Text
-> DescribeSubscriptionFilters
describeSubscriptionFilters pLogGroupName_ =
DescribeSubscriptionFilters'
{ _dsfFilterNamePrefix = Nothing
, _dsfNextToken = Nothing
, _dsfLimit = Nothing
, _dsfLogGroupName = pLogGroupName_
}
dsfFilterNamePrefix :: Lens' DescribeSubscriptionFilters (Maybe Text)
dsfFilterNamePrefix = lens _dsfFilterNamePrefix (\ s a -> s{_dsfFilterNamePrefix = a});
dsfNextToken :: Lens' DescribeSubscriptionFilters (Maybe Text)
dsfNextToken = lens _dsfNextToken (\ s a -> s{_dsfNextToken = a});
dsfLimit :: Lens' DescribeSubscriptionFilters (Maybe Natural)
dsfLimit = lens _dsfLimit (\ s a -> s{_dsfLimit = a}) . mapping _Nat;
dsfLogGroupName :: Lens' DescribeSubscriptionFilters Text
dsfLogGroupName = lens _dsfLogGroupName (\ s a -> s{_dsfLogGroupName = a});
instance AWSPager DescribeSubscriptionFilters where
page rq rs
| stop (rs ^. dsfrsNextToken) = Nothing
| stop (rs ^. dsfrsSubscriptionFilters) = Nothing
| otherwise =
Just $ rq & dsfNextToken .~ rs ^. dsfrsNextToken
instance AWSRequest DescribeSubscriptionFilters where
type Rs DescribeSubscriptionFilters =
DescribeSubscriptionFiltersResponse
request = postJSON cloudWatchLogs
response
= receiveJSON
(\ s h x ->
DescribeSubscriptionFiltersResponse' <$>
(x .?> "subscriptionFilters" .!@ mempty) <*>
(x .?> "nextToken")
<*> (pure (fromEnum s)))
instance Hashable DescribeSubscriptionFilters
instance NFData DescribeSubscriptionFilters
instance ToHeaders DescribeSubscriptionFilters where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("Logs_20140328.DescribeSubscriptionFilters" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeSubscriptionFilters where
toJSON DescribeSubscriptionFilters'{..}
= object
(catMaybes
[("filterNamePrefix" .=) <$> _dsfFilterNamePrefix,
("nextToken" .=) <$> _dsfNextToken,
("limit" .=) <$> _dsfLimit,
Just ("logGroupName" .= _dsfLogGroupName)])
instance ToPath DescribeSubscriptionFilters where
toPath = const "/"
instance ToQuery DescribeSubscriptionFilters where
toQuery = const mempty
data DescribeSubscriptionFiltersResponse = DescribeSubscriptionFiltersResponse'
{ _dsfrsSubscriptionFilters :: !(Maybe [SubscriptionFilter])
, _dsfrsNextToken :: !(Maybe Text)
, _dsfrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeSubscriptionFiltersResponse
:: Int
-> DescribeSubscriptionFiltersResponse
describeSubscriptionFiltersResponse pResponseStatus_ =
DescribeSubscriptionFiltersResponse'
{ _dsfrsSubscriptionFilters = Nothing
, _dsfrsNextToken = Nothing
, _dsfrsResponseStatus = pResponseStatus_
}
dsfrsSubscriptionFilters :: Lens' DescribeSubscriptionFiltersResponse [SubscriptionFilter]
dsfrsSubscriptionFilters = lens _dsfrsSubscriptionFilters (\ s a -> s{_dsfrsSubscriptionFilters = a}) . _Default . _Coerce;
dsfrsNextToken :: Lens' DescribeSubscriptionFiltersResponse (Maybe Text)
dsfrsNextToken = lens _dsfrsNextToken (\ s a -> s{_dsfrsNextToken = a});
dsfrsResponseStatus :: Lens' DescribeSubscriptionFiltersResponse Int
dsfrsResponseStatus = lens _dsfrsResponseStatus (\ s a -> s{_dsfrsResponseStatus = a});
instance NFData DescribeSubscriptionFiltersResponse