{-# 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 -- 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