amazonka-config-1.4.5: gen/Network/AWS/Config/StartConfigRulesEvaluation.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.StartConfigRulesEvaluation
-- 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)
--
-- Evaluates your resources against the specified Config rules. You can specify up to 25 Config rules per request.
--
--
-- An existing 'StartConfigRulesEvaluation' call must complete for the specified rules before you can call the API again. If you chose to have AWS Config stream to an Amazon SNS topic, you will receive a @ConfigRuleEvaluationStarted@ notification when the evaluation starts.
--
-- The @StartConfigRulesEvaluation@ API is useful if you want to run on-demand evaluations, such as the following example:
--
-- * You have a custom rule that evaluates your IAM resources every 24 hours.
--
-- * You update your Lambda function to add additional conditions to your rule.
--
-- * Instead of waiting for the next periodic evaluation, you call the @StartConfigRulesEvaluation@ API.
--
-- * AWS Config invokes your Lambda function and evaluates your IAM resources.
--
-- * Your custom rule will still run periodic evaluations every 24 hours.
--
--
--
module Network.AWS.Config.StartConfigRulesEvaluation
(
-- * Creating a Request
startConfigRulesEvaluation
, StartConfigRulesEvaluation
-- * Request Lenses
, screConfigRuleNames
-- * Destructuring the Response
, startConfigRulesEvaluationResponse
, StartConfigRulesEvaluationResponse
-- * Response Lenses
, scrersResponseStatus
) 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:/ 'startConfigRulesEvaluation' smart constructor.
newtype StartConfigRulesEvaluation = StartConfigRulesEvaluation'
{ _screConfigRuleNames :: Maybe (List1 Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'StartConfigRulesEvaluation' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'screConfigRuleNames' - The list of names of Config rules that you want to run evaluations for.
startConfigRulesEvaluation
:: StartConfigRulesEvaluation
startConfigRulesEvaluation =
StartConfigRulesEvaluation'
{ _screConfigRuleNames = Nothing
}
-- | The list of names of Config rules that you want to run evaluations for.
screConfigRuleNames :: Lens' StartConfigRulesEvaluation (Maybe (NonEmpty Text))
screConfigRuleNames = lens _screConfigRuleNames (\ s a -> s{_screConfigRuleNames = a}) . mapping _List1;
instance AWSRequest StartConfigRulesEvaluation where
type Rs StartConfigRulesEvaluation =
StartConfigRulesEvaluationResponse
request = postJSON config
response
= receiveEmpty
(\ s h x ->
StartConfigRulesEvaluationResponse' <$>
(pure (fromEnum s)))
instance Hashable StartConfigRulesEvaluation
instance NFData StartConfigRulesEvaluation
instance ToHeaders StartConfigRulesEvaluation where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StarlingDoveService.StartConfigRulesEvaluation" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON StartConfigRulesEvaluation where
toJSON StartConfigRulesEvaluation'{..}
= object
(catMaybes
[("ConfigRuleNames" .=) <$> _screConfigRuleNames])
instance ToPath StartConfigRulesEvaluation where
toPath = const "/"
instance ToQuery StartConfigRulesEvaluation where
toQuery = const mempty
-- | The output when you start the evaluation for the specified Config rule.
--
--
--
-- /See:/ 'startConfigRulesEvaluationResponse' smart constructor.
newtype StartConfigRulesEvaluationResponse = StartConfigRulesEvaluationResponse'
{ _scrersResponseStatus :: Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'StartConfigRulesEvaluationResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'scrersResponseStatus' - -- | The response status code.
startConfigRulesEvaluationResponse
:: Int -- ^ 'scrersResponseStatus'
-> StartConfigRulesEvaluationResponse
startConfigRulesEvaluationResponse pResponseStatus_ =
StartConfigRulesEvaluationResponse'
{ _scrersResponseStatus = pResponseStatus_
}
-- | -- | The response status code.
scrersResponseStatus :: Lens' StartConfigRulesEvaluationResponse Int
scrersResponseStatus = lens _scrersResponseStatus (\ s a -> s{_scrersResponseStatus = a});
instance NFData StartConfigRulesEvaluationResponse