amazonka-config-1.6.0: gen/Network/AWS/Config/DescribeAggregateComplianceByConfigRules.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.Config.DescribeAggregateComplianceByConfigRules
-- Copyright : (c) 2013-2018 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns a list of compliant and noncompliant rules with the number of resources for compliant and noncompliant rules.
--
--
module Network.AWS.Config.DescribeAggregateComplianceByConfigRules
(
-- * Creating a Request
describeAggregateComplianceByConfigRules
, DescribeAggregateComplianceByConfigRules
-- * Request Lenses
, dacbcrFilters
, dacbcrNextToken
, dacbcrLimit
, dacbcrConfigurationAggregatorName
-- * Destructuring the Response
, describeAggregateComplianceByConfigRulesResponse
, DescribeAggregateComplianceByConfigRulesResponse
-- * Response Lenses
, dacbcrrsNextToken
, dacbcrrsAggregateComplianceByConfigRules
, dacbcrrsResponseStatus
) where
import Network.AWS.Config.Types
import Network.AWS.Config.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'describeAggregateComplianceByConfigRules' smart constructor.
data DescribeAggregateComplianceByConfigRules = DescribeAggregateComplianceByConfigRules'
{ _dacbcrFilters :: !(Maybe ConfigRuleComplianceFilters)
, _dacbcrNextToken :: !(Maybe Text)
, _dacbcrLimit :: !(Maybe Nat)
, _dacbcrConfigurationAggregatorName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'DescribeAggregateComplianceByConfigRules' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dacbcrFilters' - Filters the results by ConfigRuleComplianceFilters object.
--
-- * 'dacbcrNextToken' - The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.
--
-- * 'dacbcrLimit' - The maximum number of evaluation results returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.
--
-- * 'dacbcrConfigurationAggregatorName' - The name of the configuration aggregator.
describeAggregateComplianceByConfigRules
:: Text -- ^ 'dacbcrConfigurationAggregatorName'
-> DescribeAggregateComplianceByConfigRules
describeAggregateComplianceByConfigRules pConfigurationAggregatorName_ =
DescribeAggregateComplianceByConfigRules'
{ _dacbcrFilters = Nothing
, _dacbcrNextToken = Nothing
, _dacbcrLimit = Nothing
, _dacbcrConfigurationAggregatorName = pConfigurationAggregatorName_
}
-- | Filters the results by ConfigRuleComplianceFilters object.
dacbcrFilters :: Lens' DescribeAggregateComplianceByConfigRules (Maybe ConfigRuleComplianceFilters)
dacbcrFilters = lens _dacbcrFilters (\ s a -> s{_dacbcrFilters = a})
-- | The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.
dacbcrNextToken :: Lens' DescribeAggregateComplianceByConfigRules (Maybe Text)
dacbcrNextToken = lens _dacbcrNextToken (\ s a -> s{_dacbcrNextToken = a})
-- | The maximum number of evaluation results returned on each page. The default is maximum. If you specify 0, AWS Config uses the default.
dacbcrLimit :: Lens' DescribeAggregateComplianceByConfigRules (Maybe Natural)
dacbcrLimit = lens _dacbcrLimit (\ s a -> s{_dacbcrLimit = a}) . mapping _Nat
-- | The name of the configuration aggregator.
dacbcrConfigurationAggregatorName :: Lens' DescribeAggregateComplianceByConfigRules Text
dacbcrConfigurationAggregatorName = lens _dacbcrConfigurationAggregatorName (\ s a -> s{_dacbcrConfigurationAggregatorName = a})
instance AWSRequest
DescribeAggregateComplianceByConfigRules
where
type Rs DescribeAggregateComplianceByConfigRules =
DescribeAggregateComplianceByConfigRulesResponse
request = postJSON config
response
= receiveJSON
(\ s h x ->
DescribeAggregateComplianceByConfigRulesResponse' <$>
(x .?> "NextToken") <*>
(x .?> "AggregateComplianceByConfigRules" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable
DescribeAggregateComplianceByConfigRules
where
instance NFData
DescribeAggregateComplianceByConfigRules
where
instance ToHeaders
DescribeAggregateComplianceByConfigRules
where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StarlingDoveService.DescribeAggregateComplianceByConfigRules"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON
DescribeAggregateComplianceByConfigRules
where
toJSON DescribeAggregateComplianceByConfigRules'{..}
= object
(catMaybes
[("Filters" .=) <$> _dacbcrFilters,
("NextToken" .=) <$> _dacbcrNextToken,
("Limit" .=) <$> _dacbcrLimit,
Just
("ConfigurationAggregatorName" .=
_dacbcrConfigurationAggregatorName)])
instance ToPath
DescribeAggregateComplianceByConfigRules
where
toPath = const "/"
instance ToQuery
DescribeAggregateComplianceByConfigRules
where
toQuery = const mempty
-- | /See:/ 'describeAggregateComplianceByConfigRulesResponse' smart constructor.
data DescribeAggregateComplianceByConfigRulesResponse = DescribeAggregateComplianceByConfigRulesResponse'
{ _dacbcrrsNextToken :: !(Maybe Text)
, _dacbcrrsAggregateComplianceByConfigRules :: !(Maybe [AggregateComplianceByConfigRule])
, _dacbcrrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'DescribeAggregateComplianceByConfigRulesResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dacbcrrsNextToken' - The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.
--
-- * 'dacbcrrsAggregateComplianceByConfigRules' - Returns a list of AggregateComplianceByConfigRule object.
--
-- * 'dacbcrrsResponseStatus' - -- | The response status code.
describeAggregateComplianceByConfigRulesResponse
:: Int -- ^ 'dacbcrrsResponseStatus'
-> DescribeAggregateComplianceByConfigRulesResponse
describeAggregateComplianceByConfigRulesResponse pResponseStatus_ =
DescribeAggregateComplianceByConfigRulesResponse'
{ _dacbcrrsNextToken = Nothing
, _dacbcrrsAggregateComplianceByConfigRules = Nothing
, _dacbcrrsResponseStatus = pResponseStatus_
}
-- | The nextToken string returned on a previous page that you use to get the next page of results in a paginated response.
dacbcrrsNextToken :: Lens' DescribeAggregateComplianceByConfigRulesResponse (Maybe Text)
dacbcrrsNextToken = lens _dacbcrrsNextToken (\ s a -> s{_dacbcrrsNextToken = a})
-- | Returns a list of AggregateComplianceByConfigRule object.
dacbcrrsAggregateComplianceByConfigRules :: Lens' DescribeAggregateComplianceByConfigRulesResponse [AggregateComplianceByConfigRule]
dacbcrrsAggregateComplianceByConfigRules = lens _dacbcrrsAggregateComplianceByConfigRules (\ s a -> s{_dacbcrrsAggregateComplianceByConfigRules = a}) . _Default . _Coerce
-- | -- | The response status code.
dacbcrrsResponseStatus :: Lens' DescribeAggregateComplianceByConfigRulesResponse Int
dacbcrrsResponseStatus = lens _dacbcrrsResponseStatus (\ s a -> s{_dacbcrrsResponseStatus = a})
instance NFData
DescribeAggregateComplianceByConfigRulesResponse
where