module Network.AWS.CloudWatchLogs.DescribeMetricFilters
(
DescribeMetricFilters
, describeMetricFilters
, dmfFilterNamePrefix
, dmfLimit
, dmfLogGroupName
, dmfNextToken
, DescribeMetricFiltersResponse
, describeMetricFiltersResponse
, dmfrMetricFilters
, dmfrNextToken
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.CloudWatchLogs.Types
import qualified GHC.Exts
data DescribeMetricFilters = DescribeMetricFilters
{ _dmfFilterNamePrefix :: Maybe Text
, _dmfLimit :: Maybe Nat
, _dmfLogGroupName :: Text
, _dmfNextToken :: Maybe Text
} deriving (Eq, Ord, Show)
describeMetricFilters :: Text
-> DescribeMetricFilters
describeMetricFilters p1 = DescribeMetricFilters
{ _dmfLogGroupName = p1
, _dmfFilterNamePrefix = Nothing
, _dmfNextToken = Nothing
, _dmfLimit = Nothing
}
dmfFilterNamePrefix :: Lens' DescribeMetricFilters (Maybe Text)
dmfFilterNamePrefix =
lens _dmfFilterNamePrefix (\s a -> s { _dmfFilterNamePrefix = a })
dmfLimit :: Lens' DescribeMetricFilters (Maybe Natural)
dmfLimit = lens _dmfLimit (\s a -> s { _dmfLimit = a }) . mapping _Nat
dmfLogGroupName :: Lens' DescribeMetricFilters Text
dmfLogGroupName = lens _dmfLogGroupName (\s a -> s { _dmfLogGroupName = a })
dmfNextToken :: Lens' DescribeMetricFilters (Maybe Text)
dmfNextToken = lens _dmfNextToken (\s a -> s { _dmfNextToken = a })
data DescribeMetricFiltersResponse = DescribeMetricFiltersResponse
{ _dmfrMetricFilters :: List "metricFilters" MetricFilter
, _dmfrNextToken :: Maybe Text
} deriving (Eq, Show)
describeMetricFiltersResponse :: DescribeMetricFiltersResponse
describeMetricFiltersResponse = DescribeMetricFiltersResponse
{ _dmfrMetricFilters = mempty
, _dmfrNextToken = Nothing
}
dmfrMetricFilters :: Lens' DescribeMetricFiltersResponse [MetricFilter]
dmfrMetricFilters =
lens _dmfrMetricFilters (\s a -> s { _dmfrMetricFilters = a })
. _List
dmfrNextToken :: Lens' DescribeMetricFiltersResponse (Maybe Text)
dmfrNextToken = lens _dmfrNextToken (\s a -> s { _dmfrNextToken = a })
instance ToPath DescribeMetricFilters where
toPath = const "/"
instance ToQuery DescribeMetricFilters where
toQuery = const mempty
instance ToHeaders DescribeMetricFilters
instance ToJSON DescribeMetricFilters where
toJSON DescribeMetricFilters{..} = object
[ "logGroupName" .= _dmfLogGroupName
, "filterNamePrefix" .= _dmfFilterNamePrefix
, "nextToken" .= _dmfNextToken
, "limit" .= _dmfLimit
]
instance AWSRequest DescribeMetricFilters where
type Sv DescribeMetricFilters = CloudWatchLogs
type Rs DescribeMetricFilters = DescribeMetricFiltersResponse
request = post "DescribeMetricFilters"
response = jsonResponse
instance FromJSON DescribeMetricFiltersResponse where
parseJSON = withObject "DescribeMetricFiltersResponse" $ \o -> DescribeMetricFiltersResponse
<$> o .:? "metricFilters" .!= mempty
<*> o .:? "nextToken"