summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrendanHay <>2016-10-23 08:52:00 (GMT)
committerhdiff <hdiff@hdiff.luite.com>2016-10-23 08:52:00 (GMT)
commit330a1d5fbc4578d4fded648ffd4835c473a349e1 (patch)
tree56b53f786fe901e59991045f3c1d7269b4ecc62e
parent867b6f7333c8024bcadadc19dd5e45287a2934a1 (diff)
version 1.4.41.4.4
-rw-r--r--README.md2
-rw-r--r--amazonka-config.cabal15
-rw-r--r--fixture/DeleteConfigurationRecorder.yaml0
-rw-r--r--fixture/DeleteConfigurationRecorderResponse.proto0
-rw-r--r--fixture/DeleteEvaluationResults.yaml0
-rw-r--r--fixture/DeleteEvaluationResultsResponse.proto0
-rw-r--r--fixture/StartConfigRulesEvaluation.yaml0
-rw-r--r--fixture/StartConfigRulesEvaluationResponse.proto0
-rw-r--r--gen/Network/AWS/Config.hs17
-rw-r--r--gen/Network/AWS/Config/DeleteConfigurationRecorder.hs116
-rw-r--r--gen/Network/AWS/Config/DeleteDeliveryChannel.hs4
-rw-r--r--gen/Network/AWS/Config/DeleteEvaluationResults.hs126
-rw-r--r--gen/Network/AWS/Config/DescribeComplianceByConfigRule.hs2
-rw-r--r--gen/Network/AWS/Config/DescribeComplianceByResource.hs2
-rw-r--r--gen/Network/AWS/Config/PutConfigRule.hs4
-rw-r--r--gen/Network/AWS/Config/PutDeliveryChannel.hs6
-rw-r--r--gen/Network/AWS/Config/StartConfigRulesEvaluation.hs142
-rw-r--r--gen/Network/AWS/Config/Types.hs9
-rw-r--r--gen/Network/AWS/Config/Types/Product.hs101
-rw-r--r--gen/Network/AWS/Config/Types/Sum.hs52
-rw-r--r--test/Test/AWS/Gen/Config.hs54
21 files changed, 605 insertions, 47 deletions
diff --git a/README.md b/README.md
index e9fdd4b..b909108 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
## Version
-`1.4.3`
+`1.4.4`
## Description
diff --git a/amazonka-config.cabal b/amazonka-config.cabal
index 4d61155..c2fe60a 100644
--- a/amazonka-config.cabal
+++ b/amazonka-config.cabal
@@ -1,5 +1,5 @@
name: amazonka-config
-version: 1.4.3
+version: 1.4.4
synopsis: Amazon Config SDK.
homepage: https://github.com/brendanhay/amazonka
bug-reports: https://github.com/brendanhay/amazonka/issues
@@ -11,7 +11,7 @@ copyright: Copyright (c) 2013-2016 Brendan Hay
category: Network, AWS, Cloud, Distributed Computing
build-type: Simple
cabal-version: >= 1.10
-extra-source-files: README.md fixture/*.yaml fixture/*.proto
+extra-source-files: README.md fixture/*.yaml fixture/*.proto src/.gitkeep
description:
AWS Config
@@ -52,7 +52,9 @@ library
exposed-modules:
Network.AWS.Config
, Network.AWS.Config.DeleteConfigRule
+ , Network.AWS.Config.DeleteConfigurationRecorder
, Network.AWS.Config.DeleteDeliveryChannel
+ , Network.AWS.Config.DeleteEvaluationResults
, Network.AWS.Config.DeliverConfigSnapshot
, Network.AWS.Config.DescribeComplianceByConfigRule
, Network.AWS.Config.DescribeComplianceByResource
@@ -72,6 +74,7 @@ library
, Network.AWS.Config.PutConfigurationRecorder
, Network.AWS.Config.PutDeliveryChannel
, Network.AWS.Config.PutEvaluations
+ , Network.AWS.Config.StartConfigRulesEvaluation
, Network.AWS.Config.StartConfigurationRecorder
, Network.AWS.Config.StopConfigurationRecorder
, Network.AWS.Config.Types
@@ -82,7 +85,7 @@ library
, Network.AWS.Config.Types.Sum
build-depends:
- amazonka-core == 1.4.3.*
+ amazonka-core == 1.4.4.*
, base >= 4.7 && < 5
test-suite amazonka-config-test
@@ -102,9 +105,9 @@ test-suite amazonka-config-test
, Test.AWS.Config.Internal
build-depends:
- amazonka-core == 1.4.3.*
- , amazonka-test == 1.4.3.*
- , amazonka-config == 1.4.3.*
+ amazonka-core == 1.4.4.*
+ , amazonka-test == 1.4.4.*
+ , amazonka-config == 1.4.4.*
, base
, bytestring
, tasty
diff --git a/fixture/DeleteConfigurationRecorder.yaml b/fixture/DeleteConfigurationRecorder.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DeleteConfigurationRecorder.yaml
diff --git a/fixture/DeleteConfigurationRecorderResponse.proto b/fixture/DeleteConfigurationRecorderResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DeleteConfigurationRecorderResponse.proto
diff --git a/fixture/DeleteEvaluationResults.yaml b/fixture/DeleteEvaluationResults.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DeleteEvaluationResults.yaml
diff --git a/fixture/DeleteEvaluationResultsResponse.proto b/fixture/DeleteEvaluationResultsResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/DeleteEvaluationResultsResponse.proto
diff --git a/fixture/StartConfigRulesEvaluation.yaml b/fixture/StartConfigRulesEvaluation.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/StartConfigRulesEvaluation.yaml
diff --git a/fixture/StartConfigRulesEvaluationResponse.proto b/fixture/StartConfigRulesEvaluationResponse.proto
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fixture/StartConfigRulesEvaluationResponse.proto
diff --git a/gen/Network/AWS/Config.hs b/gen/Network/AWS/Config.hs
index 34c1a81..2fd15ec 100644
--- a/gen/Network/AWS/Config.hs
+++ b/gen/Network/AWS/Config.hs
@@ -108,6 +108,9 @@ module Network.AWS.Config
-- ** InvalidS3KeyPrefixException
, _InvalidS3KeyPrefixException
+ -- ** LimitExceededException
+ , _LimitExceededException
+
-- ** ResourceInUseException
, _ResourceInUseException
@@ -129,6 +132,9 @@ module Network.AWS.Config
-- ** DescribeConfigRules
, module Network.AWS.Config.DescribeConfigRules
+ -- ** DeleteEvaluationResults
+ , module Network.AWS.Config.DeleteEvaluationResults
+
-- ** PutConfigRule
, module Network.AWS.Config.PutConfigRule
@@ -144,6 +150,9 @@ module Network.AWS.Config
-- ** DescribeConfigRuleEvaluationStatus
, module Network.AWS.Config.DescribeConfigRuleEvaluationStatus
+ -- ** StartConfigRulesEvaluation
+ , module Network.AWS.Config.StartConfigRulesEvaluation
+
-- ** DescribeComplianceByResource
, module Network.AWS.Config.DescribeComplianceByResource
@@ -165,6 +174,9 @@ module Network.AWS.Config
-- ** PutConfigurationRecorder
, module Network.AWS.Config.PutConfigurationRecorder
+ -- ** DeleteConfigurationRecorder
+ , module Network.AWS.Config.DeleteConfigurationRecorder
+
-- ** GetComplianceSummaryByResourceType
, module Network.AWS.Config.GetComplianceSummaryByResourceType
@@ -322,6 +334,7 @@ module Network.AWS.Config
, ciConfigurationItemStatus
, ciConfigurationItemCaptureTime
, ciAccountId
+ , ciSupplementaryConfiguration
, ciAvailabilityZone
, ciRelationships
, ciVersion
@@ -441,11 +454,14 @@ module Network.AWS.Config
, SourceDetail
, sourceDetail
, sdMessageType
+ , sdMaximumExecutionFrequency
, sdEventSource
) where
import Network.AWS.Config.DeleteConfigRule
+import Network.AWS.Config.DeleteConfigurationRecorder
import Network.AWS.Config.DeleteDeliveryChannel
+import Network.AWS.Config.DeleteEvaluationResults
import Network.AWS.Config.DeliverConfigSnapshot
import Network.AWS.Config.DescribeComplianceByConfigRule
import Network.AWS.Config.DescribeComplianceByResource
@@ -465,6 +481,7 @@ import Network.AWS.Config.PutConfigRule
import Network.AWS.Config.PutConfigurationRecorder
import Network.AWS.Config.PutDeliveryChannel
import Network.AWS.Config.PutEvaluations
+import Network.AWS.Config.StartConfigRulesEvaluation
import Network.AWS.Config.StartConfigurationRecorder
import Network.AWS.Config.StopConfigurationRecorder
import Network.AWS.Config.Types
diff --git a/gen/Network/AWS/Config/DeleteConfigurationRecorder.hs b/gen/Network/AWS/Config/DeleteConfigurationRecorder.hs
new file mode 100644
index 0000000..d117096
--- /dev/null
+++ b/gen/Network/AWS/Config/DeleteConfigurationRecorder.hs
@@ -0,0 +1,116 @@
+{-# 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.DeleteConfigurationRecorder
+-- 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)
+--
+-- Deletes the configuration recorder.
+--
+-- After the configuration recorder is deleted, AWS Config will not record resource configuration changes until you create a new configuration recorder.
+--
+-- This action does not delete the configuration information that was previously recorded. You will be able to access the previously recorded information by using the 'GetResourceConfigHistory' action, but you will not be able to access this information in the AWS Config console until you create a new configuration recorder.
+module Network.AWS.Config.DeleteConfigurationRecorder
+ (
+ -- * Creating a Request
+ deleteConfigurationRecorder
+ , DeleteConfigurationRecorder
+ -- * Request Lenses
+ , dcrConfigurationRecorderName
+
+ -- * Destructuring the Response
+ , deleteConfigurationRecorderResponse
+ , DeleteConfigurationRecorderResponse
+ ) 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
+
+-- | The request object for the 'DeleteConfigurationRecorder' action.
+--
+-- /See:/ 'deleteConfigurationRecorder' smart constructor.
+newtype DeleteConfigurationRecorder = DeleteConfigurationRecorder'
+ { _dcrConfigurationRecorderName :: Text
+ } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteConfigurationRecorder' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dcrConfigurationRecorderName'
+deleteConfigurationRecorder
+ :: Text -- ^ 'dcrConfigurationRecorderName'
+ -> DeleteConfigurationRecorder
+deleteConfigurationRecorder pConfigurationRecorderName_ =
+ DeleteConfigurationRecorder'
+ { _dcrConfigurationRecorderName = pConfigurationRecorderName_
+ }
+
+-- | The name of the configuration recorder to be deleted. You can retrieve the name of your configuration recorder by using the 'DescribeConfigurationRecorders' action.
+dcrConfigurationRecorderName :: Lens' DeleteConfigurationRecorder Text
+dcrConfigurationRecorderName = lens _dcrConfigurationRecorderName (\ s a -> s{_dcrConfigurationRecorderName = a});
+
+instance AWSRequest DeleteConfigurationRecorder where
+ type Rs DeleteConfigurationRecorder =
+ DeleteConfigurationRecorderResponse
+ request = postJSON config
+ response
+ = receiveNull DeleteConfigurationRecorderResponse'
+
+instance Hashable DeleteConfigurationRecorder
+
+instance NFData DeleteConfigurationRecorder
+
+instance ToHeaders DeleteConfigurationRecorder where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("StarlingDoveService.DeleteConfigurationRecorder" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DeleteConfigurationRecorder where
+ toJSON DeleteConfigurationRecorder'{..}
+ = object
+ (catMaybes
+ [Just
+ ("ConfigurationRecorderName" .=
+ _dcrConfigurationRecorderName)])
+
+instance ToPath DeleteConfigurationRecorder where
+ toPath = const "/"
+
+instance ToQuery DeleteConfigurationRecorder where
+ toQuery = const mempty
+
+-- | /See:/ 'deleteConfigurationRecorderResponse' smart constructor.
+data DeleteConfigurationRecorderResponse =
+ DeleteConfigurationRecorderResponse'
+ deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteConfigurationRecorderResponse' with the minimum fields required to make a request.
+--
+deleteConfigurationRecorderResponse
+ :: DeleteConfigurationRecorderResponse
+deleteConfigurationRecorderResponse = DeleteConfigurationRecorderResponse'
+
+instance NFData DeleteConfigurationRecorderResponse
diff --git a/gen/Network/AWS/Config/DeleteDeliveryChannel.hs b/gen/Network/AWS/Config/DeleteDeliveryChannel.hs
index ba3ece0..5f7c250 100644
--- a/gen/Network/AWS/Config/DeleteDeliveryChannel.hs
+++ b/gen/Network/AWS/Config/DeleteDeliveryChannel.hs
@@ -18,9 +18,9 @@
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
--- Deletes the specified delivery channel.
+-- Deletes the delivery channel.
--
--- The delivery channel cannot be deleted if it is the only delivery channel and the configuration recorder is still running. To delete the delivery channel, stop the running configuration recorder using the < StopConfigurationRecorder> action.
+-- Before you can delete the delivery channel, you must stop the configuration recorder by using the < StopConfigurationRecorder> action.
module Network.AWS.Config.DeleteDeliveryChannel
(
-- * Creating a Request
diff --git a/gen/Network/AWS/Config/DeleteEvaluationResults.hs b/gen/Network/AWS/Config/DeleteEvaluationResults.hs
new file mode 100644
index 0000000..01493d0
--- /dev/null
+++ b/gen/Network/AWS/Config/DeleteEvaluationResults.hs
@@ -0,0 +1,126 @@
+{-# 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.DeleteEvaluationResults
+-- 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)
+--
+-- Deletes the evaluation results for the specified Config rule. You can specify one Config rule per request. After you delete the evaluation results, you can call the < StartConfigRulesEvaluation> API to start evaluating your AWS resources against the rule.
+module Network.AWS.Config.DeleteEvaluationResults
+ (
+ -- * Creating a Request
+ deleteEvaluationResults
+ , DeleteEvaluationResults
+ -- * Request Lenses
+ , derConfigRuleName
+
+ -- * Destructuring the Response
+ , deleteEvaluationResultsResponse
+ , DeleteEvaluationResultsResponse
+ -- * Response Lenses
+ , derrsResponseStatus
+ ) 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:/ 'deleteEvaluationResults' smart constructor.
+newtype DeleteEvaluationResults = DeleteEvaluationResults'
+ { _derConfigRuleName :: Text
+ } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteEvaluationResults' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'derConfigRuleName'
+deleteEvaluationResults
+ :: Text -- ^ 'derConfigRuleName'
+ -> DeleteEvaluationResults
+deleteEvaluationResults pConfigRuleName_ =
+ DeleteEvaluationResults'
+ { _derConfigRuleName = pConfigRuleName_
+ }
+
+-- | The name of the Config rule for which you want to delete the evaluation results.
+derConfigRuleName :: Lens' DeleteEvaluationResults Text
+derConfigRuleName = lens _derConfigRuleName (\ s a -> s{_derConfigRuleName = a});
+
+instance AWSRequest DeleteEvaluationResults where
+ type Rs DeleteEvaluationResults =
+ DeleteEvaluationResultsResponse
+ request = postJSON config
+ response
+ = receiveEmpty
+ (\ s h x ->
+ DeleteEvaluationResultsResponse' <$>
+ (pure (fromEnum s)))
+
+instance Hashable DeleteEvaluationResults
+
+instance NFData DeleteEvaluationResults
+
+instance ToHeaders DeleteEvaluationResults where
+ toHeaders
+ = const
+ (mconcat
+ ["X-Amz-Target" =#
+ ("StarlingDoveService.DeleteEvaluationResults" ::
+ ByteString),
+ "Content-Type" =#
+ ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DeleteEvaluationResults where
+ toJSON DeleteEvaluationResults'{..}
+ = object
+ (catMaybes
+ [Just ("ConfigRuleName" .= _derConfigRuleName)])
+
+instance ToPath DeleteEvaluationResults where
+ toPath = const "/"
+
+instance ToQuery DeleteEvaluationResults where
+ toQuery = const mempty
+
+-- | The output when you delete the evaluation results for the specified Config rule.
+--
+-- /See:/ 'deleteEvaluationResultsResponse' smart constructor.
+newtype DeleteEvaluationResultsResponse = DeleteEvaluationResultsResponse'
+ { _derrsResponseStatus :: Int
+ } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteEvaluationResultsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'derrsResponseStatus'
+deleteEvaluationResultsResponse
+ :: Int -- ^ 'derrsResponseStatus'
+ -> DeleteEvaluationResultsResponse
+deleteEvaluationResultsResponse pResponseStatus_ =
+ DeleteEvaluationResultsResponse'
+ { _derrsResponseStatus = pResponseStatus_
+ }
+
+-- | The response status code.
+derrsResponseStatus :: Lens' DeleteEvaluationResultsResponse Int
+derrsResponseStatus = lens _derrsResponseStatus (\ s a -> s{_derrsResponseStatus = a});
+
+instance NFData DeleteEvaluationResultsResponse
diff --git a/gen/Network/AWS/Config/DescribeComplianceByConfigRule.hs b/gen/Network/AWS/Config/DescribeComplianceByConfigRule.hs
index ff14468..d7f9446 100644
--- a/gen/Network/AWS/Config/DescribeComplianceByConfigRule.hs
+++ b/gen/Network/AWS/Config/DescribeComplianceByConfigRule.hs
@@ -25,7 +25,7 @@
-- If AWS Config has no current evaluation results for the rule, it returns 'INSUFFICIENT_DATA'. This result might indicate one of the following conditions:
--
-- - AWS Config has never invoked an evaluation for the rule. To check whether it has, use the 'DescribeConfigRuleEvaluationStatus' action to get the 'LastSuccessfulInvocationTime' and 'LastFailedInvocationTime'.
--- - The rule\'s AWS Lambda function is failing to send evaluation results to AWS Config. Verify that the role that you assigned to your configuration recorder includes the 'config:PutEvaluations' permission. If the rule is a customer managed rule, verify that the AWS Lambda execution role includes the 'config:PutEvaluations' permission.
+-- - The rule\'s AWS Lambda function is failing to send evaluation results to AWS Config. Verify that the role that you assigned to your configuration recorder includes the 'config:PutEvaluations' permission. If the rule is a custom rule, verify that the AWS Lambda execution role includes the 'config:PutEvaluations' permission.
-- - The rule\'s AWS Lambda function has returned 'NOT_APPLICABLE' for all evaluation results. This can occur if the resources were deleted or removed from the rule\'s scope.
module Network.AWS.Config.DescribeComplianceByConfigRule
(
diff --git a/gen/Network/AWS/Config/DescribeComplianceByResource.hs b/gen/Network/AWS/Config/DescribeComplianceByResource.hs
index 91940ac..8d3086e 100644
--- a/gen/Network/AWS/Config/DescribeComplianceByResource.hs
+++ b/gen/Network/AWS/Config/DescribeComplianceByResource.hs
@@ -25,7 +25,7 @@
-- If AWS Config has no current evaluation results for the resource, it returns 'INSUFFICIENT_DATA'. This result might indicate one of the following conditions about the rules that evaluate the resource:
--
-- - AWS Config has never invoked an evaluation for the rule. To check whether it has, use the 'DescribeConfigRuleEvaluationStatus' action to get the 'LastSuccessfulInvocationTime' and 'LastFailedInvocationTime'.
--- - The rule\'s AWS Lambda function is failing to send evaluation results to AWS Config. Verify that the role that you assigned to your configuration recorder includes the 'config:PutEvaluations' permission. If the rule is a customer managed rule, verify that the AWS Lambda execution role includes the 'config:PutEvaluations' permission.
+-- - The rule\'s AWS Lambda function is failing to send evaluation results to AWS Config. Verify that the role that you assigned to your configuration recorder includes the 'config:PutEvaluations' permission. If the rule is a custom rule, verify that the AWS Lambda execution role includes the 'config:PutEvaluations' permission.
-- - The rule\'s AWS Lambda function has returned 'NOT_APPLICABLE' for all evaluation results. This can occur if the resources were deleted or removed from the rule\'s scope.
module Network.AWS.Config.DescribeComplianceByResource
(
diff --git a/gen/Network/AWS/Config/PutConfigRule.hs b/gen/Network/AWS/Config/PutConfigRule.hs
index 8c2e1e0..d6919f1 100644
--- a/gen/Network/AWS/Config/PutConfigRule.hs
+++ b/gen/Network/AWS/Config/PutConfigRule.hs
@@ -20,9 +20,9 @@
--
-- Adds or updates an AWS Config rule for evaluating whether your AWS resources comply with your desired configurations.
--
--- You can use this action for customer managed Config rules and AWS managed Config rules. A customer managed Config rule is a custom rule that you develop and maintain. An AWS managed Config rule is a customizable, predefined rule that is provided by AWS Config.
+-- You can use this action for custom Config rules and AWS managed Config rules. A custom Config rule is a rule that you develop and maintain. An AWS managed Config rule is a customizable, predefined rule that AWS Config provides.
--
--- If you are adding a new customer managed Config rule, you must first create the AWS Lambda function that the rule invokes to evaluate your resources. When you use the 'PutConfigRule' action to add the rule to AWS Config, you must specify the Amazon Resource Name (ARN) that AWS Lambda assigns to the function. Specify the ARN for the 'SourceIdentifier' key. This key is part of the 'Source' object, which is part of the 'ConfigRule' object.
+-- If you are adding a new custom Config rule, you must first create the AWS Lambda function that the rule invokes to evaluate your resources. When you use the 'PutConfigRule' action to add the rule to AWS Config, you must specify the Amazon Resource Name (ARN) that AWS Lambda assigns to the function. Specify the ARN for the 'SourceIdentifier' key. This key is part of the 'Source' object, which is part of the 'ConfigRule' object.
--
-- If you are adding a new AWS managed Config rule, specify the rule\'s identifier for the 'SourceIdentifier' key. To reference AWS managed Config rule identifiers, see <http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html Using AWS Managed Config Rules>.
--
diff --git a/gen/Network/AWS/Config/PutDeliveryChannel.hs b/gen/Network/AWS/Config/PutDeliveryChannel.hs
index 94c0edf..2008a6e 100644
--- a/gen/Network/AWS/Config/PutDeliveryChannel.hs
+++ b/gen/Network/AWS/Config/PutDeliveryChannel.hs
@@ -18,11 +18,13 @@
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
--- Creates a new delivery channel object to deliver the configuration information to an Amazon S3 bucket, and to an Amazon SNS topic.
+-- Creates a delivery channel object to deliver configuration information to an Amazon S3 bucket and Amazon SNS topic.
+--
+-- Before you can create a delivery channel, you must create a configuration recorder.
--
-- You can use this action to change the Amazon S3 bucket or an Amazon SNS topic of the existing delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call this action and specify the changed values for the S3 bucket and the SNS topic. If you specify a different value for either the S3 bucket or the SNS topic, this action will keep the existing value for the parameter that is not changed.
--
--- Currently, you can specify only one delivery channel per account.
+-- You can have only one delivery channel per AWS account.
module Network.AWS.Config.PutDeliveryChannel
(
-- * Creating a Request
diff --git a/gen/Network/AWS/Config/StartConfigRulesEvaluation.hs b/gen/Network/AWS/Config/StartConfigRulesEvaluation.hs
new file mode 100644
index 0000000..467f4e4
--- /dev/null
+++ b/gen/Network/AWS/Config/StartConfigRulesEvaluation.hs
@@ -0,0 +1,142 @@
+{-# 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.
+--
+-- You don\'t need to call the 'StartConfigRulesEvaluation' API to run an evaluation for a new rule. When you create a new rule, AWS Config automatically evaluates your resources against the rule.
+--
+-- The 'StartConfigRulesEvaluation' API is useful if you want to run on-demand evaluations, such as the following example:
+--
+-- 1. You have a custom rule that evaluates your IAM resources every 24 hours.
+--
+-- 2. You update your Lambda function to add additional conditions to your rule.
+--
+-- 3. Instead of waiting for the next periodic evaluation, you call the 'StartConfigRulesEvaluation' API.
+--
+-- 4. AWS Config invokes your Lambda function and evaluates your IAM resources.
+--
+-- 5. 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'
+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'
+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
diff --git a/gen/Network/AWS/Config/Types.hs b/gen/Network/AWS/Config/Types.hs
index e80940e..300f5fb 100644
--- a/gen/Network/AWS/Config/Types.hs
+++ b/gen/Network/AWS/Config/Types.hs
@@ -42,6 +42,7 @@ module Network.AWS.Config.Types
, _MaxNumberOfDeliveryChannelsExceededException
, _NoSuchConfigurationRecorderException
, _InvalidS3KeyPrefixException
+ , _LimitExceededException
, _ResourceInUseException
-- * ChronologicalOrder
@@ -178,6 +179,7 @@ module Network.AWS.Config.Types
, ciConfigurationItemStatus
, ciConfigurationItemCaptureTime
, ciAccountId
+ , ciSupplementaryConfiguration
, ciAvailabilityZone
, ciRelationships
, ciVersion
@@ -297,6 +299,7 @@ module Network.AWS.Config.Types
, SourceDetail
, sourceDetail
, sdMessageType
+ , sdMaximumExecutionFrequency
, sdEventSource
) where
@@ -470,6 +473,10 @@ _InvalidS3KeyPrefixException :: AsError a => Getting (First ServiceError) a Serv
_InvalidS3KeyPrefixException =
_ServiceError . hasCode "InvalidS3KeyPrefixException"
--- | The rule is currently being deleted. Wait for a while and try again.
+-- | This exception is thrown if an evaluation is in progress or if you call the < StartConfigRulesEvaluation> API more than once per minute.
+_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_LimitExceededException = _ServiceError . hasCode "LimitExceededException"
+
+-- | The rule is currently being deleted or the rule is deleting your evaluation results. Try your request again later.
_ResourceInUseException :: AsError a => Getting (First ServiceError) a ServiceError
_ResourceInUseException = _ServiceError . hasCode "ResourceInUseException"
diff --git a/gen/Network/AWS/Config/Types/Product.hs b/gen/Network/AWS/Config/Types/Product.hs
index ad2a1fe..a4e037c 100644
--- a/gen/Network/AWS/Config/Types/Product.hs
+++ b/gen/Network/AWS/Config/Types/Product.hs
@@ -381,7 +381,9 @@ instance Hashable ConfigExportDeliveryInfo
instance NFData ConfigExportDeliveryInfo
--- | An AWS Lambda function that evaluates configuration items to assess whether your AWS resources comply with your desired configurations. This function can run when AWS Config detects a configuration change to an AWS resource, or when it delivers a configuration snapshot of the resources in the account.
+-- | An AWS Config rule represents an AWS Lambda function that you create for a custom rule or a predefined function for an AWS managed rule. The function evaluates configuration items to assess whether your AWS resources comply with your desired configurations. This function can run when AWS Config detects a configuration change to an AWS resource and at a periodic frequency that you choose (for example, every 24 hours).
+--
+-- You can use the AWS CLI and AWS SDKs if you want to create a rule that triggers evaluations for your resources when AWS Config delivers the configuration snapshot. For more information, see < ConfigSnapshotDeliveryProperties>.
--
-- For more information about developing and using AWS Config rules, see <http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html Evaluating AWS Resource Configurations with AWS Config> in the /AWS Config Developer Guide/.
--
@@ -443,9 +445,13 @@ crInputParameters = lens _crInputParameters (\ s a -> s{_crInputParameters = a})
crConfigRuleName :: Lens' ConfigRule (Maybe Text)
crConfigRuleName = lens _crConfigRuleName (\ s a -> s{_crConfigRuleName = a});
--- | The maximum frequency at which the AWS Config rule runs evaluations.
+-- | The maximum frequency with which AWS Config runs evaluations for a rule. You can specify a value for 'MaximumExecutionFrequency' when:
+--
+-- - You are using an AWS managed rule that is triggered at a periodic frequency.
--
--- If your rule is periodic, meaning it runs an evaluation when AWS Config delivers a configuration snapshot, then it cannot run evaluations more frequently than AWS Config delivers the snapshots. For periodic rules, set the value of the 'MaximumExecutionFrequency' key to be equal to or greater than the value of the 'deliveryFrequency' key, which is part of 'ConfigSnapshotDeliveryProperties'. To update the frequency with which AWS Config delivers your snapshots, use the 'PutDeliveryChannel' action.
+-- - Your custom rule is triggered when AWS Config delivers the configuration snapshot.
+--
+-- For more information, see < ConfigSnapshotDeliveryProperties>.
crMaximumExecutionFrequency :: Lens' ConfigRule (Maybe MaximumExecutionFrequency)
crMaximumExecutionFrequency = lens _crMaximumExecutionFrequency (\ s a -> s{_crMaximumExecutionFrequency = a});
@@ -457,11 +463,13 @@ crConfigRuleId = lens _crConfigRuleId (\ s a -> s{_crConfigRuleId = a});
crScope :: Lens' ConfigRule (Maybe Scope)
crScope = lens _crScope (\ s a -> s{_crScope = a});
--- | Indicates whether the AWS Config rule is active or currently being deleted by AWS Config.
+-- | Indicates whether the AWS Config rule is active or is currently being deleted by AWS Config. It can also indicate the evaluation status for the Config rule.
+--
+-- AWS Config sets the state of the rule to 'EVALUATING' temporarily after you use the 'StartConfigRulesEvaluation' request to evaluate your resources against the Config rule.
--
--- AWS Config sets the state of a rule to 'DELETING' temporarily after you use the 'DeleteConfigRule' request to delete the rule. After AWS Config finishes deleting a rule, the rule and all of its evaluations are erased and no longer available.
+-- AWS Config sets the state of the rule to 'DELETING_RESULTS' temporarily after you use the 'DeleteEvaluationResults' request to delete the current evaluation results for the Config rule.
--
--- You cannot add a rule to AWS Config that has the state set to 'DELETING'. If you want to delete a rule, you must use the 'DeleteConfigRule' request.
+-- AWS Config sets the state of a rule to 'DELETING' temporarily after you use the 'DeleteConfigRule' request to delete the rule. After AWS Config deletes the rule, the rule and all of its evaluations are erased and are no longer available.
crConfigRuleState :: Lens' ConfigRule (Maybe ConfigRuleState)
crConfigRuleState = lens _crConfigRuleState (\ s a -> s{_crConfigRuleState = a});
@@ -473,7 +481,7 @@ crDescription = lens _crDescription (\ s a -> s{_crDescription = a});
crConfigRuleARN :: Lens' ConfigRule (Maybe Text)
crConfigRuleARN = lens _crConfigRuleARN (\ s a -> s{_crConfigRuleARN = a});
--- | Provides the rule owner (AWS or customer), the rule identifier, and the events that cause the function to evaluate your AWS resources.
+-- | Provides the rule owner (AWS or customer), the rule identifier, and the notifications that cause the function to evaluate your AWS resources.
crSource :: Lens' ConfigRule Source
crSource = lens _crSource (\ s a -> s{_crSource = a});
@@ -513,7 +521,7 @@ instance ToJSON ConfigRule where
-- | Status information for your AWS managed Config rules. The status includes information such as the last time the rule ran, the last time it failed, and the related error for the last failure.
--
--- This action does not return status information about customer managed Config rules.
+-- This action does not return status information about custom Config rules.
--
-- /See:/ 'configRuleEvaluationStatus' smart constructor.
data ConfigRuleEvaluationStatus = ConfigRuleEvaluationStatus'
@@ -640,7 +648,29 @@ instance Hashable ConfigRuleEvaluationStatus
instance NFData ConfigRuleEvaluationStatus
--- | Options for how AWS Config delivers configuration snapshots to the Amazon S3 bucket in your delivery channel.
+-- | Provides options for how often AWS Config delivers configuration snapshots to the Amazon S3 bucket in your delivery channel.
+--
+-- If you want to create a rule that triggers evaluations for your resources when AWS Config delivers the configuration snapshot, see the following:
+--
+-- The frequency for a rule that triggers evaluations for your resources when AWS Config delivers the configuration snapshot is set by one of two values, depending on which is less frequent:
+--
+-- - The value for the 'deliveryFrequency' parameter within the delivery channel configuration, which sets how often AWS Config delivers configuration snapshots. This value also sets how often AWS Config invokes evaluations for Config rules.
+--
+-- - The value for the 'MaximumExecutionFrequency' parameter, which sets the maximum frequency with which AWS Config invokes evaluations for the rule. For more information, see < ConfigRule>.
+--
+-- If the 'deliveryFrequency' value is less frequent than the 'MaximumExecutionFrequency' value for a rule, AWS Config invokes the rule only as often as the 'deliveryFrequency' value.
+--
+-- 1. For example, you want your rule to run evaluations when AWS Config delivers the configuration snapshot.
+--
+-- 2. You specify the 'MaximumExecutionFrequency' value for 'Six_Hours'.
+--
+-- 3. You then specify the delivery channel 'deliveryFrequency' value for 'TwentyFour_Hours'.
+--
+-- 4. Because the value for 'deliveryFrequency' is less frequent than 'MaximumExecutionFrequency', AWS Config invokes evaluations for the rule every 24 hours.
+--
+-- You should set the 'MaximumExecutionFrequency' value to be at least as frequent as the 'deliveryFrequency' value. You can view the 'deliveryFrequency' value by using the 'DescribeDeliveryChannnels' action.
+--
+-- To update the 'deliveryFrequency' with which AWS Config delivers your configuration snapshots, use the 'PutDeliveryChannel' action.
--
-- /See:/ 'configSnapshotDeliveryProperties' smart constructor.
newtype ConfigSnapshotDeliveryProperties = ConfigSnapshotDeliveryProperties'
@@ -659,7 +689,7 @@ configSnapshotDeliveryProperties =
{ _csdpDeliveryFrequency = Nothing
}
--- | The frequency with which a AWS Config recurringly delivers configuration snapshots.
+-- | The frequency with which AWS Config delivers configuration snapshots.
csdpDeliveryFrequency :: Lens' ConfigSnapshotDeliveryProperties (Maybe MaximumExecutionFrequency)
csdpDeliveryFrequency = lens _csdpDeliveryFrequency (\ s a -> s{_csdpDeliveryFrequency = a});
@@ -761,6 +791,7 @@ data ConfigurationItem = ConfigurationItem'
, _ciConfigurationItemStatus :: !(Maybe ConfigurationItemStatus)
, _ciConfigurationItemCaptureTime :: !(Maybe POSIX)
, _ciAccountId :: !(Maybe Text)
+ , _ciSupplementaryConfiguration :: !(Maybe (Map Text Text))
, _ciAvailabilityZone :: !(Maybe Text)
, _ciRelationships :: !(Maybe [Relationship])
, _ciVersion :: !(Maybe Text)
@@ -793,6 +824,8 @@ data ConfigurationItem = ConfigurationItem'
--
-- * 'ciAccountId'
--
+-- * 'ciSupplementaryConfiguration'
+--
-- * 'ciAvailabilityZone'
--
-- * 'ciRelationships'
@@ -821,6 +854,7 @@ configurationItem =
, _ciConfigurationItemStatus = Nothing
, _ciConfigurationItemCaptureTime = Nothing
, _ciAccountId = Nothing
+ , _ciSupplementaryConfiguration = Nothing
, _ciAvailabilityZone = Nothing
, _ciRelationships = Nothing
, _ciVersion = Nothing
@@ -867,6 +901,10 @@ ciConfigurationItemCaptureTime = lens _ciConfigurationItemCaptureTime (\ s a ->
ciAccountId :: Lens' ConfigurationItem (Maybe Text)
ciAccountId = lens _ciAccountId (\ s a -> s{_ciAccountId = a});
+-- | Configuration attributes that AWS Config returns for certain resource types to supplement the information returned for the 'configuration' parameter.
+ciSupplementaryConfiguration :: Lens' ConfigurationItem (HashMap Text Text)
+ciSupplementaryConfiguration = lens _ciSupplementaryConfiguration (\ s a -> s{_ciSupplementaryConfiguration = a}) . _Default . _Map;
+
-- | The Availability Zone associated with the resource.
ciAvailabilityZone :: Lens' ConfigurationItem (Maybe Text)
ciAvailabilityZone = lens _ciAvailabilityZone (\ s a -> s{_ciAvailabilityZone = a});
@@ -918,6 +956,7 @@ instance FromJSON ConfigurationItem where
<*> (x .:? "configurationItemStatus")
<*> (x .:? "configurationItemCaptureTime")
<*> (x .:? "accountId")
+ <*> (x .:? "supplementaryConfiguration" .!= mempty)
<*> (x .:? "availabilityZone")
<*> (x .:? "relationships" .!= mempty)
<*> (x .:? "version")
@@ -1086,7 +1125,7 @@ instance Hashable ConfigurationRecorderStatus
instance NFData ConfigurationRecorderStatus
--- | A logical container used for storing the configuration changes of an AWS resource.
+-- | The channel through which AWS Config delivers notifications and updated configuration states.
--
-- /See:/ 'deliveryChannel' smart constructor.
data DeliveryChannel = DeliveryChannel'
@@ -1125,11 +1164,13 @@ deliveryChannel =
dcS3KeyPrefix :: Lens' DeliveryChannel (Maybe Text)
dcS3KeyPrefix = lens _dcS3KeyPrefix (\ s a -> s{_dcS3KeyPrefix = a});
--- | The Amazon Resource Name (ARN) of the SNS topic that AWS Config delivers notifications to.
+-- | The Amazon Resource Name (ARN) of the Amazon SNS topic to which AWS Config sends notifications about configuration changes.
+--
+-- If you choose a topic from another account, the topic must have policies that grant access permissions to AWS Config. For more information, see <http://docs.aws.amazon.com/config/latest/developerguide/sns-topic-policy.html Permissions for the Amazon SNS Topic> in the AWS Config Developer Guide.
dcSnsTopicARN :: Lens' DeliveryChannel (Maybe Text)
dcSnsTopicARN = lens _dcSnsTopicARN (\ s a -> s{_dcSnsTopicARN = a});
--- | The name of the delivery channel. By default, AWS Config automatically assigns the name \"default\" when creating the delivery channel. You cannot change the assigned name.
+-- | The name of the delivery channel. By default, AWS Config assigns the name \"default\" when creating the delivery channel. To change the delivery channel name, you must use the DeleteDeliveryChannel action to delete your current delivery channel, and then you must use the PutDeliveryChannel command to create a delivery channel that has the desired name.
dcName :: Lens' DeliveryChannel (Maybe Text)
dcName = lens _dcName (\ s a -> s{_dcName = a});
@@ -1137,7 +1178,9 @@ dcName = lens _dcName (\ s a -> s{_dcName = a});
dcConfigSnapshotDeliveryProperties :: Lens' DeliveryChannel (Maybe ConfigSnapshotDeliveryProperties)
dcConfigSnapshotDeliveryProperties = lens _dcConfigSnapshotDeliveryProperties (\ s a -> s{_dcConfigSnapshotDeliveryProperties = a});
--- | The name of the Amazon S3 bucket used to store configuration history for the delivery channel.
+-- | The name of the Amazon S3 bucket to which AWS Config delivers configuration snapshots and configuration history files.
+--
+-- If you specify a bucket that belongs to another AWS account, that bucket must have policies that grant access permissions to AWS Config. For more information, see <http://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html Permissions for the Amazon S3 Bucket> in the AWS Config Developer Guide.
dcS3BucketName :: Lens' DeliveryChannel (Maybe Text)
dcS3BucketName = lens _dcS3BucketName (\ s a -> s{_dcS3BucketName = a});
@@ -1807,7 +1850,7 @@ source =
-- | For AWS managed Config rules, a pre-defined identifier from a list. To reference the list, see <http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html Using AWS Managed Config Rules>.
--
--- For customer managed Config rules, the identifier is the Amazon Resource Name (ARN) of the rule\'s AWS Lambda function.
+-- For custom Config rules, the identifier is the Amazon Resource Name (ARN) of the rule\'s AWS Lambda function.
sSourceIdentifier :: Lens' Source (Maybe Text)
sSourceIdentifier = lens _sSourceIdentifier (\ s a -> s{_sSourceIdentifier = a});
@@ -1839,12 +1882,13 @@ instance ToJSON Source where
("Owner" .=) <$> _sOwner,
("SourceDetails" .=) <$> _sSourceDetails])
--- | Provides the source and type of the event that triggers AWS Config to evaluate your AWS resources against a rule.
+-- | Provides the source and the message types that trigger AWS Config to evaluate your AWS resources against a rule. It also provides the frequency with which you want AWS Config to run evaluations for the rule if the trigger type is periodic. You can specify the parameter values for 'SourceDetail' only for custom rules.
--
-- /See:/ 'sourceDetail' smart constructor.
data SourceDetail = SourceDetail'
- { _sdMessageType :: !(Maybe MessageType)
- , _sdEventSource :: !(Maybe EventSource)
+ { _sdMessageType :: !(Maybe MessageType)
+ , _sdMaximumExecutionFrequency :: !(Maybe MaximumExecutionFrequency)
+ , _sdEventSource :: !(Maybe EventSource)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'SourceDetail' with the minimum fields required to make a request.
@@ -1853,19 +1897,32 @@ data SourceDetail = SourceDetail'
--
-- * 'sdMessageType'
--
+-- * 'sdMaximumExecutionFrequency'
+--
-- * 'sdEventSource'
sourceDetail
:: SourceDetail
sourceDetail =
SourceDetail'
{ _sdMessageType = Nothing
+ , _sdMaximumExecutionFrequency = Nothing
, _sdEventSource = Nothing
}
--- | The type of SNS message that triggers AWS Config to run an evaluation. For evaluations that are initiated when AWS Config delivers a configuration item change notification, you must use 'ConfigurationItemChangeNotification'. For evaluations that are initiated when AWS Config delivers a configuration snapshot, you must use 'ConfigurationSnapshotDeliveryCompleted'.
+-- | The type of notification that triggers AWS Config to run an evaluation. You can specify the following notification types:
+--
+-- 'ConfigurationItemChangeNotification' - Triggers an evaluation when AWS Config delivers a configuration item change notification.
+--
+-- 'ScheduledNotification' - Triggers a periodic evaluation at the frequency specified for 'MaximumExecutionFrequency'.
+--
+-- 'ConfigurationSnapshotDeliveryCompleted' - Triggers a periodic evaluation when AWS Config delivers a configuration snapshot.
sdMessageType :: Lens' SourceDetail (Maybe MessageType)
sdMessageType = lens _sdMessageType (\ s a -> s{_sdMessageType = a});
+-- | The frequency that you want AWS Config to run evaluations for a rule that is triggered periodically. If you specify a value for 'MaximumExecutionFrequency', then 'MessageType' must use the 'ScheduledNotification' value.
+sdMaximumExecutionFrequency :: Lens' SourceDetail (Maybe MaximumExecutionFrequency)
+sdMaximumExecutionFrequency = lens _sdMaximumExecutionFrequency (\ s a -> s{_sdMaximumExecutionFrequency = a});
+
-- | The source of the event, such as an AWS service, that triggers AWS Config to evaluate your AWS resources.
sdEventSource :: Lens' SourceDetail (Maybe EventSource)
sdEventSource = lens _sdEventSource (\ s a -> s{_sdEventSource = a});
@@ -1875,7 +1932,9 @@ instance FromJSON SourceDetail where
= withObject "SourceDetail"
(\ x ->
SourceDetail' <$>
- (x .:? "MessageType") <*> (x .:? "EventSource"))
+ (x .:? "MessageType") <*>
+ (x .:? "MaximumExecutionFrequency")
+ <*> (x .:? "EventSource"))
instance Hashable SourceDetail
@@ -1886,4 +1945,6 @@ instance ToJSON SourceDetail where
= object
(catMaybes
[("MessageType" .=) <$> _sdMessageType,
+ ("MaximumExecutionFrequency" .=) <$>
+ _sdMaximumExecutionFrequency,
("EventSource" .=) <$> _sdEventSource])
diff --git a/gen/Network/AWS/Config/Types/Sum.hs b/gen/Network/AWS/Config/Types/Sum.hs
index a4e9c48..5d433d1 100644
--- a/gen/Network/AWS/Config/Types/Sum.hs
+++ b/gen/Network/AWS/Config/Types/Sum.hs
@@ -29,7 +29,7 @@ instance FromText ChronologicalOrder where
"forward" -> pure Forward
"reverse" -> pure Reverse
e -> fromTextError $ "Failure parsing ChronologicalOrder from value: '" <> e
- <> "'. Accepted values: Forward, Reverse"
+ <> "'. Accepted values: forward, reverse"
instance ToText ChronologicalOrder where
toText = \case
@@ -59,7 +59,7 @@ instance FromText ComplianceType where
"non_compliant" -> pure NonCompliant
"not_applicable" -> pure NotApplicable
e -> fromTextError $ "Failure parsing ComplianceType from value: '" <> e
- <> "'. Accepted values: COMPLIANT, INSUFFICIENT_DATA, NON_COMPLIANT, NOT_APPLICABLE"
+ <> "'. Accepted values: compliant, insufficient_data, non_compliant, not_applicable"
instance ToText ComplianceType where
toText = \case
@@ -83,19 +83,25 @@ instance FromJSON ComplianceType where
data ConfigRuleState
= Active
| Deleting
+ | DeletingResults
+ | Evaluating
deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
instance FromText ConfigRuleState where
parser = takeLowerText >>= \case
"active" -> pure Active
"deleting" -> pure Deleting
+ "deleting_results" -> pure DeletingResults
+ "evaluating" -> pure Evaluating
e -> fromTextError $ "Failure parsing ConfigRuleState from value: '" <> e
- <> "'. Accepted values: ACTIVE, DELETING"
+ <> "'. Accepted values: active, deleting, deleting_results, evaluating"
instance ToText ConfigRuleState where
toText = \case
Active -> "ACTIVE"
Deleting -> "DELETING"
+ DeletingResults -> "DELETING_RESULTS"
+ Evaluating -> "EVALUATING"
instance Hashable ConfigRuleState
instance NFData ConfigRuleState
@@ -123,7 +129,7 @@ instance FromText ConfigurationItemStatus where
"failed" -> pure Failed
"ok" -> pure OK
e -> fromTextError $ "Failure parsing ConfigurationItemStatus from value: '" <> e
- <> "'. Accepted values: Deleted, Discovered, Failed, Ok"
+ <> "'. Accepted values: deleted, discovered, failed, ok"
instance ToText ConfigurationItemStatus where
toText = \case
@@ -153,7 +159,7 @@ instance FromText DeliveryStatus where
"not_applicable" -> pure DSNotApplicable
"success" -> pure DSSuccess
e -> fromTextError $ "Failure parsing DeliveryStatus from value: '" <> e
- <> "'. Accepted values: Failure, Not_Applicable, Success"
+ <> "'. Accepted values: failure, not_applicable, success"
instance ToText DeliveryStatus where
toText = \case
@@ -212,7 +218,7 @@ instance FromText MaximumExecutionFrequency where
"twelve_hours" -> pure TwelveHours
"twentyfour_hours" -> pure TwentyFourHours
e -> fromTextError $ "Failure parsing MaximumExecutionFrequency from value: '" <> e
- <> "'. Accepted values: One_Hour, Six_Hours, Three_Hours, Twelve_Hours, TwentyFour_Hours"
+ <> "'. Accepted values: one_hour, six_hours, three_hours, twelve_hours, twentyfour_hours"
instance ToText MaximumExecutionFrequency where
toText = \case
@@ -237,19 +243,22 @@ instance FromJSON MaximumExecutionFrequency where
data MessageType
= ConfigurationItemChangeNotification
| ConfigurationSnapshotDeliveryCompleted
+ | ScheduledNotification
deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
instance FromText MessageType where
parser = takeLowerText >>= \case
"configurationitemchangenotification" -> pure ConfigurationItemChangeNotification
"configurationsnapshotdeliverycompleted" -> pure ConfigurationSnapshotDeliveryCompleted
+ "schedulednotification" -> pure ScheduledNotification
e -> fromTextError $ "Failure parsing MessageType from value: '" <> e
- <> "'. Accepted values: ConfigurationItemChangeNotification, ConfigurationSnapshotDeliveryCompleted"
+ <> "'. Accepted values: configurationitemchangenotification, configurationsnapshotdeliverycompleted, schedulednotification"
instance ToText MessageType where
toText = \case
ConfigurationItemChangeNotification -> "ConfigurationItemChangeNotification"
ConfigurationSnapshotDeliveryCompleted -> "ConfigurationSnapshotDeliveryCompleted"
+ ScheduledNotification -> "ScheduledNotification"
instance Hashable MessageType
instance NFData MessageType
@@ -273,7 +282,7 @@ instance FromText Owner where
"aws" -> pure AWS
"custom_lambda" -> pure CustomLambda
e -> fromTextError $ "Failure parsing Owner from value: '" <> e
- <> "'. Accepted values: AWS, CUSTOM_LAMBDA"
+ <> "'. Accepted values: aws, custom_lambda"
instance ToText Owner where
toText = \case
@@ -304,7 +313,7 @@ instance FromText RecorderStatus where
"pending" -> pure Pending
"success" -> pure Success
e -> fromTextError $ "Failure parsing RecorderStatus from value: '" <> e
- <> "'. Accepted values: Failure, Pending, Success"
+ <> "'. Accepted values: failure, pending, success"
instance ToText RecorderStatus where
toText = \case
@@ -322,7 +331,8 @@ instance FromJSON RecorderStatus where
parseJSON = parseJSONText "RecorderStatus"
data ResourceType
- = AWSCloudTrailTrail
+ = AWSAcmCertificate
+ | AWSCloudTrailTrail
| AWSEC2CustomerGateway
| AWSEC2EIP
| AWSEC2Host
@@ -337,14 +347,21 @@ data ResourceType
| AWSEC2VPNConnection
| AWSEC2VPNGateway
| AWSEC2Volume
+ | AWSELASTICLOADBALANCINGV2LoadBalancer
| AWSIAMGroup
| AWSIAMPolicy
| AWSIAMRole
| AWSIAMUser
+ | AWSRDSDBInstance
+ | AWSRDSDBSecurityGroup
+ | AWSRDSDBSnapshot
+ | AWSRDSDBSubnetGroup
+ | AWSRDSEventSubscription
deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
instance FromText ResourceType where
parser = takeLowerText >>= \case
+ "aws::acm::certificate" -> pure AWSAcmCertificate
"aws::cloudtrail::trail" -> pure AWSCloudTrailTrail
"aws::ec2::customergateway" -> pure AWSEC2CustomerGateway
"aws::ec2::eip" -> pure AWSEC2EIP
@@ -360,15 +377,22 @@ instance FromText ResourceType where
"aws::ec2::vpnconnection" -> pure AWSEC2VPNConnection
"aws::ec2::vpngateway" -> pure AWSEC2VPNGateway
"aws::ec2::volume" -> pure AWSEC2Volume
+ "aws::elasticloadbalancingv2::loadbalancer" -> pure AWSELASTICLOADBALANCINGV2LoadBalancer
"aws::iam::group" -> pure AWSIAMGroup
"aws::iam::policy" -> pure AWSIAMPolicy
"aws::iam::role" -> pure AWSIAMRole
"aws::iam::user" -> pure AWSIAMUser
+ "aws::rds::dbinstance" -> pure AWSRDSDBInstance
+ "aws::rds::dbsecuritygroup" -> pure AWSRDSDBSecurityGroup
+ "aws::rds::dbsnapshot" -> pure AWSRDSDBSnapshot
+ "aws::rds::dbsubnetgroup" -> pure AWSRDSDBSubnetGroup
+ "aws::rds::eventsubscription" -> pure AWSRDSEventSubscription
e -> fromTextError $ "Failure parsing ResourceType from value: '" <> e
- <> "'. Accepted values: AWS::CloudTrail::Trail, AWS::EC2::CustomerGateway, AWS::EC2::EIP, AWS::EC2::Host, AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkAcl, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::SecurityGroup, AWS::EC2::Subnet, AWS::EC2::VPC, AWS::EC2::VPNConnection, AWS::EC2::VPNGateway, AWS::EC2::Volume, AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User"
+ <> "'. Accepted values: aws::acm::certificate, aws::cloudtrail::trail, aws::ec2::customergateway, aws::ec2::eip, aws::ec2::host, aws::ec2::instance, aws::ec2::internetgateway, aws::ec2::networkacl, aws::ec2::networkinterface, aws::ec2::routetable, aws::ec2::securitygroup, aws::ec2::subnet, aws::ec2::vpc, aws::ec2::vpnconnection, aws::ec2::vpngateway, aws::ec2::volume, aws::elasticloadbalancingv2::loadbalancer, aws::iam::group, aws::iam::policy, aws::iam::role, aws::iam::user, aws::rds::dbinstance, aws::rds::dbsecuritygroup, aws::rds::dbsnapshot, aws::rds::dbsubnetgroup, aws::rds::eventsubscription"
instance ToText ResourceType where
toText = \case
+ AWSAcmCertificate -> "AWS::ACM::Certificate"
AWSCloudTrailTrail -> "AWS::CloudTrail::Trail"
AWSEC2CustomerGateway -> "AWS::EC2::CustomerGateway"
AWSEC2EIP -> "AWS::EC2::EIP"
@@ -384,10 +408,16 @@ instance ToText ResourceType where
AWSEC2VPNConnection -> "AWS::EC2::VPNConnection"
AWSEC2VPNGateway -> "AWS::EC2::VPNGateway"
AWSEC2Volume -> "AWS::EC2::Volume"
+ AWSELASTICLOADBALANCINGV2LoadBalancer -> "AWS::ElasticLoadBalancingV2::LoadBalancer"
AWSIAMGroup -> "AWS::IAM::Group"
AWSIAMPolicy -> "AWS::IAM::Policy"
AWSIAMRole -> "AWS::IAM::Role"
AWSIAMUser -> "AWS::IAM::User"
+ AWSRDSDBInstance -> "AWS::RDS::DBInstance"
+ AWSRDSDBSecurityGroup -> "AWS::RDS::DBSecurityGroup"
+ AWSRDSDBSnapshot -> "AWS::RDS::DBSnapshot"
+ AWSRDSDBSubnetGroup -> "AWS::RDS::DBSubnetGroup"
+ AWSRDSEventSubscription -> "AWS::RDS::EventSubscription"
instance Hashable ResourceType
instance NFData ResourceType
diff --git a/test/Test/AWS/Gen/Config.hs b/test/Test/AWS/Gen/Config.hs
index d07b205..6d56a66 100644
--- a/test/Test/AWS/Gen/Config.hs
+++ b/test/Test/AWS/Gen/Config.hs
@@ -40,6 +40,9 @@ import Test.AWS.Config.Internal
-- , requestDescribeConfigRules $
-- describeConfigRules
--
+-- , requestDeleteEvaluationResults $
+-- deleteEvaluationResults
+--
-- , requestPutConfigRule $
-- putConfigRule
--
@@ -55,6 +58,9 @@ import Test.AWS.Config.Internal
-- , requestDescribeConfigRuleEvaluationStatus $
-- describeConfigRuleEvaluationStatus
--
+-- , requestStartConfigRulesEvaluation $
+-- startConfigRulesEvaluation
+--
-- , requestDescribeComplianceByResource $
-- describeComplianceByResource
--
@@ -76,6 +82,9 @@ import Test.AWS.Config.Internal
-- , requestPutConfigurationRecorder $
-- putConfigurationRecorder
--
+-- , requestDeleteConfigurationRecorder $
+-- deleteConfigurationRecorder
+--
-- , requestGetComplianceSummaryByResourceType $
-- getComplianceSummaryByResourceType
--
@@ -112,6 +121,9 @@ import Test.AWS.Config.Internal
-- , responseDescribeConfigRules $
-- describeConfigRulesResponse
--
+-- , responseDeleteEvaluationResults $
+-- deleteEvaluationResultsResponse
+--
-- , responsePutConfigRule $
-- putConfigRuleResponse
--
@@ -127,6 +139,9 @@ import Test.AWS.Config.Internal
-- , responseDescribeConfigRuleEvaluationStatus $
-- describeConfigRuleEvaluationStatusResponse
--
+-- , responseStartConfigRulesEvaluation $
+-- startConfigRulesEvaluationResponse
+--
-- , responseDescribeComplianceByResource $
-- describeComplianceByResourceResponse
--
@@ -148,6 +163,9 @@ import Test.AWS.Config.Internal
-- , responsePutConfigurationRecorder $
-- putConfigurationRecorderResponse
--
+-- , responseDeleteConfigurationRecorder $
+-- deleteConfigurationRecorderResponse
+--
-- , responseGetComplianceSummaryByResourceType $
-- getComplianceSummaryByResourceTypeResponse
--
@@ -194,6 +212,11 @@ requestDescribeConfigRules = req
"DescribeConfigRules"
"fixture/DescribeConfigRules.yaml"
+requestDeleteEvaluationResults :: DeleteEvaluationResults -> TestTree
+requestDeleteEvaluationResults = req
+ "DeleteEvaluationResults"
+ "fixture/DeleteEvaluationResults.yaml"
+
requestPutConfigRule :: PutConfigRule -> TestTree
requestPutConfigRule = req
"PutConfigRule"
@@ -219,6 +242,11 @@ requestDescribeConfigRuleEvaluationStatus = req
"DescribeConfigRuleEvaluationStatus"
"fixture/DescribeConfigRuleEvaluationStatus.yaml"
+requestStartConfigRulesEvaluation :: StartConfigRulesEvaluation -> TestTree
+requestStartConfigRulesEvaluation = req
+ "StartConfigRulesEvaluation"
+ "fixture/StartConfigRulesEvaluation.yaml"
+
requestDescribeComplianceByResource :: DescribeComplianceByResource -> TestTree
requestDescribeComplianceByResource = req
"DescribeComplianceByResource"
@@ -254,6 +282,11 @@ requestPutConfigurationRecorder = req
"PutConfigurationRecorder"
"fixture/PutConfigurationRecorder.yaml"
+requestDeleteConfigurationRecorder :: DeleteConfigurationRecorder -> TestTree
+requestDeleteConfigurationRecorder = req
+ "DeleteConfigurationRecorder"
+ "fixture/DeleteConfigurationRecorder.yaml"
+
requestGetComplianceSummaryByResourceType :: GetComplianceSummaryByResourceType -> TestTree
requestGetComplianceSummaryByResourceType = req
"GetComplianceSummaryByResourceType"
@@ -319,6 +352,13 @@ responseDescribeConfigRules = res
config
(Proxy :: Proxy DescribeConfigRules)
+responseDeleteEvaluationResults :: DeleteEvaluationResultsResponse -> TestTree
+responseDeleteEvaluationResults = res
+ "DeleteEvaluationResultsResponse"
+ "fixture/DeleteEvaluationResultsResponse.proto"
+ config
+ (Proxy :: Proxy DeleteEvaluationResults)
+
responsePutConfigRule :: PutConfigRuleResponse -> TestTree
responsePutConfigRule = res
"PutConfigRuleResponse"
@@ -354,6 +394,13 @@ responseDescribeConfigRuleEvaluationStatus = res
config
(Proxy :: Proxy DescribeConfigRuleEvaluationStatus)
+responseStartConfigRulesEvaluation :: StartConfigRulesEvaluationResponse -> TestTree
+responseStartConfigRulesEvaluation = res
+ "StartConfigRulesEvaluationResponse"
+ "fixture/StartConfigRulesEvaluationResponse.proto"
+ config
+ (Proxy :: Proxy StartConfigRulesEvaluation)
+
responseDescribeComplianceByResource :: DescribeComplianceByResourceResponse -> TestTree
responseDescribeComplianceByResource = res
"DescribeComplianceByResourceResponse"
@@ -403,6 +450,13 @@ responsePutConfigurationRecorder = res
config
(Proxy :: Proxy PutConfigurationRecorder)
+responseDeleteConfigurationRecorder :: DeleteConfigurationRecorderResponse -> TestTree
+responseDeleteConfigurationRecorder = res
+ "DeleteConfigurationRecorderResponse"
+ "fixture/DeleteConfigurationRecorderResponse.proto"
+ config
+ (Proxy :: Proxy DeleteConfigurationRecorder)
+
responseGetComplianceSummaryByResourceType :: GetComplianceSummaryByResourceTypeResponse -> TestTree
responseGetComplianceSummaryByResourceType = res
"GetComplianceSummaryByResourceTypeResponse"