/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Config rules evaluate the configuration settings of your Amazon Web Services
* resources. A rule can run when Config detects a configuration change to an
* Amazon Web Services resource or at a periodic frequency that you choose (for
* example, every 24 hours). There are two types of rules: Config Managed
* Rules and Config Custom Rules. Config Managed Rules are
* predefined, customizable rules created by Config. For a list of managed rules,
* see List
* of Config Managed Rules. Config Custom Rules are rules that you
* create from scratch. There are two ways to create Config custom rules: with
* Lambda functions (
* Lambda Developer Guide) and with Guard (Guard GitHub
* Repository), a policy-as-code language. Config custom rules created with
* Lambda are called Config Custom Lambda Rules and Config custom rules
* created with Guard are called Config Custom Policy Rules. For more
* information about developing and using Config rules, see Evaluating
* Resource with Config Rules in the Config Developer Guide. You can use the Amazon Web Services CLI and Amazon Web Services SDKs if you
* want to create a rule that triggers evaluations for your resources when Config
* delivers the configuration snapshot. For more information, see
* ConfigSnapshotDeliveryProperties.See Also:
AWS
* API Reference
The name that you assign to the Config rule. The name is required if you are * adding a new rule.
*/ inline const Aws::String& GetConfigRuleName() const{ return m_configRuleName; } /** *The name that you assign to the Config rule. The name is required if you are * adding a new rule.
*/ inline bool ConfigRuleNameHasBeenSet() const { return m_configRuleNameHasBeenSet; } /** *The name that you assign to the Config rule. The name is required if you are * adding a new rule.
*/ inline void SetConfigRuleName(const Aws::String& value) { m_configRuleNameHasBeenSet = true; m_configRuleName = value; } /** *The name that you assign to the Config rule. The name is required if you are * adding a new rule.
*/ inline void SetConfigRuleName(Aws::String&& value) { m_configRuleNameHasBeenSet = true; m_configRuleName = std::move(value); } /** *The name that you assign to the Config rule. The name is required if you are * adding a new rule.
*/ inline void SetConfigRuleName(const char* value) { m_configRuleNameHasBeenSet = true; m_configRuleName.assign(value); } /** *The name that you assign to the Config rule. The name is required if you are * adding a new rule.
*/ inline ConfigRule& WithConfigRuleName(const Aws::String& value) { SetConfigRuleName(value); return *this;} /** *The name that you assign to the Config rule. The name is required if you are * adding a new rule.
*/ inline ConfigRule& WithConfigRuleName(Aws::String&& value) { SetConfigRuleName(std::move(value)); return *this;} /** *The name that you assign to the Config rule. The name is required if you are * adding a new rule.
*/ inline ConfigRule& WithConfigRuleName(const char* value) { SetConfigRuleName(value); return *this;} /** *The Amazon Resource Name (ARN) of the Config rule.
*/ inline const Aws::String& GetConfigRuleArn() const{ return m_configRuleArn; } /** *The Amazon Resource Name (ARN) of the Config rule.
*/ inline bool ConfigRuleArnHasBeenSet() const { return m_configRuleArnHasBeenSet; } /** *The Amazon Resource Name (ARN) of the Config rule.
*/ inline void SetConfigRuleArn(const Aws::String& value) { m_configRuleArnHasBeenSet = true; m_configRuleArn = value; } /** *The Amazon Resource Name (ARN) of the Config rule.
*/ inline void SetConfigRuleArn(Aws::String&& value) { m_configRuleArnHasBeenSet = true; m_configRuleArn = std::move(value); } /** *The Amazon Resource Name (ARN) of the Config rule.
*/ inline void SetConfigRuleArn(const char* value) { m_configRuleArnHasBeenSet = true; m_configRuleArn.assign(value); } /** *The Amazon Resource Name (ARN) of the Config rule.
*/ inline ConfigRule& WithConfigRuleArn(const Aws::String& value) { SetConfigRuleArn(value); return *this;} /** *The Amazon Resource Name (ARN) of the Config rule.
*/ inline ConfigRule& WithConfigRuleArn(Aws::String&& value) { SetConfigRuleArn(std::move(value)); return *this;} /** *The Amazon Resource Name (ARN) of the Config rule.
*/ inline ConfigRule& WithConfigRuleArn(const char* value) { SetConfigRuleArn(value); return *this;} /** *The ID of the Config rule.
*/ inline const Aws::String& GetConfigRuleId() const{ return m_configRuleId; } /** *The ID of the Config rule.
*/ inline bool ConfigRuleIdHasBeenSet() const { return m_configRuleIdHasBeenSet; } /** *The ID of the Config rule.
*/ inline void SetConfigRuleId(const Aws::String& value) { m_configRuleIdHasBeenSet = true; m_configRuleId = value; } /** *The ID of the Config rule.
*/ inline void SetConfigRuleId(Aws::String&& value) { m_configRuleIdHasBeenSet = true; m_configRuleId = std::move(value); } /** *The ID of the Config rule.
*/ inline void SetConfigRuleId(const char* value) { m_configRuleIdHasBeenSet = true; m_configRuleId.assign(value); } /** *The ID of the Config rule.
*/ inline ConfigRule& WithConfigRuleId(const Aws::String& value) { SetConfigRuleId(value); return *this;} /** *The ID of the Config rule.
*/ inline ConfigRule& WithConfigRuleId(Aws::String&& value) { SetConfigRuleId(std::move(value)); return *this;} /** *The ID of the Config rule.
*/ inline ConfigRule& WithConfigRuleId(const char* value) { SetConfigRuleId(value); return *this;} /** *The description that you provide for the Config rule.
*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *The description that you provide for the Config rule.
*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *The description that you provide for the Config rule.
*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *The description that you provide for the Config rule.
*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *The description that you provide for the Config rule.
*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *The description that you provide for the Config rule.
*/ inline ConfigRule& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *The description that you provide for the Config rule.
*/ inline ConfigRule& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *The description that you provide for the Config rule.
*/ inline ConfigRule& WithDescription(const char* value) { SetDescription(value); return *this;} /** *Defines which resources can trigger an evaluation for the rule. The scope can * include one or more resource types, a combination of one resource type and one * resource ID, or a combination of a tag key and value. Specify a scope to * constrain the resources that can trigger an evaluation for the rule. If you do * not specify a scope, evaluations are triggered when any resource in the * recording group changes.
The scope can be empty.
*/ inline const Scope& GetScope() const{ return m_scope; } /** *Defines which resources can trigger an evaluation for the rule. The scope can * include one or more resource types, a combination of one resource type and one * resource ID, or a combination of a tag key and value. Specify a scope to * constrain the resources that can trigger an evaluation for the rule. If you do * not specify a scope, evaluations are triggered when any resource in the * recording group changes.
The scope can be empty.
*/ inline bool ScopeHasBeenSet() const { return m_scopeHasBeenSet; } /** *Defines which resources can trigger an evaluation for the rule. The scope can * include one or more resource types, a combination of one resource type and one * resource ID, or a combination of a tag key and value. Specify a scope to * constrain the resources that can trigger an evaluation for the rule. If you do * not specify a scope, evaluations are triggered when any resource in the * recording group changes.
The scope can be empty.
*/ inline void SetScope(const Scope& value) { m_scopeHasBeenSet = true; m_scope = value; } /** *Defines which resources can trigger an evaluation for the rule. The scope can * include one or more resource types, a combination of one resource type and one * resource ID, or a combination of a tag key and value. Specify a scope to * constrain the resources that can trigger an evaluation for the rule. If you do * not specify a scope, evaluations are triggered when any resource in the * recording group changes.
The scope can be empty.
*/ inline void SetScope(Scope&& value) { m_scopeHasBeenSet = true; m_scope = std::move(value); } /** *Defines which resources can trigger an evaluation for the rule. The scope can * include one or more resource types, a combination of one resource type and one * resource ID, or a combination of a tag key and value. Specify a scope to * constrain the resources that can trigger an evaluation for the rule. If you do * not specify a scope, evaluations are triggered when any resource in the * recording group changes.
The scope can be empty.
*/ inline ConfigRule& WithScope(const Scope& value) { SetScope(value); return *this;} /** *Defines which resources can trigger an evaluation for the rule. The scope can * include one or more resource types, a combination of one resource type and one * resource ID, or a combination of a tag key and value. Specify a scope to * constrain the resources that can trigger an evaluation for the rule. If you do * not specify a scope, evaluations are triggered when any resource in the * recording group changes.
The scope can be empty.
*/ inline ConfigRule& WithScope(Scope&& value) { SetScope(std::move(value)); return *this;} /** *Provides the rule owner (Amazon Web Services
for managed rules,
* CUSTOM_POLICY
for Custom Policy rules, and
* CUSTOM_LAMBDA
for Custom Lambda rules), the rule identifier, and
* the notifications that cause the function to evaluate your Amazon Web Services
* resources.
Provides the rule owner (Amazon Web Services
for managed rules,
* CUSTOM_POLICY
for Custom Policy rules, and
* CUSTOM_LAMBDA
for Custom Lambda rules), the rule identifier, and
* the notifications that cause the function to evaluate your Amazon Web Services
* resources.
Provides the rule owner (Amazon Web Services
for managed rules,
* CUSTOM_POLICY
for Custom Policy rules, and
* CUSTOM_LAMBDA
for Custom Lambda rules), the rule identifier, and
* the notifications that cause the function to evaluate your Amazon Web Services
* resources.
Provides the rule owner (Amazon Web Services
for managed rules,
* CUSTOM_POLICY
for Custom Policy rules, and
* CUSTOM_LAMBDA
for Custom Lambda rules), the rule identifier, and
* the notifications that cause the function to evaluate your Amazon Web Services
* resources.
Provides the rule owner (Amazon Web Services
for managed rules,
* CUSTOM_POLICY
for Custom Policy rules, and
* CUSTOM_LAMBDA
for Custom Lambda rules), the rule identifier, and
* the notifications that cause the function to evaluate your Amazon Web Services
* resources.
Provides the rule owner (Amazon Web Services
for managed rules,
* CUSTOM_POLICY
for Custom Policy rules, and
* CUSTOM_LAMBDA
for Custom Lambda rules), the rule identifier, and
* the notifications that cause the function to evaluate your Amazon Web Services
* resources.
A string, in JSON format, that is passed to the Config rule Lambda * function.
*/ inline const Aws::String& GetInputParameters() const{ return m_inputParameters; } /** *A string, in JSON format, that is passed to the Config rule Lambda * function.
*/ inline bool InputParametersHasBeenSet() const { return m_inputParametersHasBeenSet; } /** *A string, in JSON format, that is passed to the Config rule Lambda * function.
*/ inline void SetInputParameters(const Aws::String& value) { m_inputParametersHasBeenSet = true; m_inputParameters = value; } /** *A string, in JSON format, that is passed to the Config rule Lambda * function.
*/ inline void SetInputParameters(Aws::String&& value) { m_inputParametersHasBeenSet = true; m_inputParameters = std::move(value); } /** *A string, in JSON format, that is passed to the Config rule Lambda * function.
*/ inline void SetInputParameters(const char* value) { m_inputParametersHasBeenSet = true; m_inputParameters.assign(value); } /** *A string, in JSON format, that is passed to the Config rule Lambda * function.
*/ inline ConfigRule& WithInputParameters(const Aws::String& value) { SetInputParameters(value); return *this;} /** *A string, in JSON format, that is passed to the Config rule Lambda * function.
*/ inline ConfigRule& WithInputParameters(Aws::String&& value) { SetInputParameters(std::move(value)); return *this;} /** *A string, in JSON format, that is passed to the Config rule Lambda * function.
*/ inline ConfigRule& WithInputParameters(const char* value) { SetInputParameters(value); return *this;} /** *The maximum frequency with which Config runs evaluations for a rule. You can
* specify a value for MaximumExecutionFrequency
when:
This is for an Config managed rule that is triggered at a periodic * frequency.
Your custom rule is triggered when Config delivers * the configuration snapshot. For more information, see * ConfigSnapshotDeliveryProperties.
By default,
* rules with a periodic trigger are evaluated every 24 hours. To change the
* frequency, specify a valid value for the MaximumExecutionFrequency
* parameter.
The maximum frequency with which Config runs evaluations for a rule. You can
* specify a value for MaximumExecutionFrequency
when:
This is for an Config managed rule that is triggered at a periodic * frequency.
Your custom rule is triggered when Config delivers * the configuration snapshot. For more information, see * ConfigSnapshotDeliveryProperties.
By default,
* rules with a periodic trigger are evaluated every 24 hours. To change the
* frequency, specify a valid value for the MaximumExecutionFrequency
* parameter.
The maximum frequency with which Config runs evaluations for a rule. You can
* specify a value for MaximumExecutionFrequency
when:
This is for an Config managed rule that is triggered at a periodic * frequency.
Your custom rule is triggered when Config delivers * the configuration snapshot. For more information, see * ConfigSnapshotDeliveryProperties.
By default,
* rules with a periodic trigger are evaluated every 24 hours. To change the
* frequency, specify a valid value for the MaximumExecutionFrequency
* parameter.
The maximum frequency with which Config runs evaluations for a rule. You can
* specify a value for MaximumExecutionFrequency
when:
This is for an Config managed rule that is triggered at a periodic * frequency.
Your custom rule is triggered when Config delivers * the configuration snapshot. For more information, see * ConfigSnapshotDeliveryProperties.
By default,
* rules with a periodic trigger are evaluated every 24 hours. To change the
* frequency, specify a valid value for the MaximumExecutionFrequency
* parameter.
The maximum frequency with which Config runs evaluations for a rule. You can
* specify a value for MaximumExecutionFrequency
when:
This is for an Config managed rule that is triggered at a periodic * frequency.
Your custom rule is triggered when Config delivers * the configuration snapshot. For more information, see * ConfigSnapshotDeliveryProperties.
By default,
* rules with a periodic trigger are evaluated every 24 hours. To change the
* frequency, specify a valid value for the MaximumExecutionFrequency
* parameter.
The maximum frequency with which Config runs evaluations for a rule. You can
* specify a value for MaximumExecutionFrequency
when:
This is for an Config managed rule that is triggered at a periodic * frequency.
Your custom rule is triggered when Config delivers * the configuration snapshot. For more information, see * ConfigSnapshotDeliveryProperties.
By default,
* rules with a periodic trigger are evaluated every 24 hours. To change the
* frequency, specify a valid value for the MaximumExecutionFrequency
* parameter.
Indicates whether the Config rule is active or is currently being deleted by * Config. It can also indicate the evaluation status for the Config rule.
*Config sets the state of the rule to EVALUATING
temporarily
* after you use the StartConfigRulesEvaluation
request to evaluate
* your resources against the Config rule.
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.
Config temporarily sets the state of a rule
* to DELETING
after you use the DeleteConfigRule
request
* to delete the rule. After Config deletes the rule, the rule and all of its
* evaluations are erased and are no longer available.
Indicates whether the Config rule is active or is currently being deleted by * Config. It can also indicate the evaluation status for the Config rule.
*Config sets the state of the rule to EVALUATING
temporarily
* after you use the StartConfigRulesEvaluation
request to evaluate
* your resources against the Config rule.
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.
Config temporarily sets the state of a rule
* to DELETING
after you use the DeleteConfigRule
request
* to delete the rule. After Config deletes the rule, the rule and all of its
* evaluations are erased and are no longer available.
Indicates whether the Config rule is active or is currently being deleted by * Config. It can also indicate the evaluation status for the Config rule.
*Config sets the state of the rule to EVALUATING
temporarily
* after you use the StartConfigRulesEvaluation
request to evaluate
* your resources against the Config rule.
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.
Config temporarily sets the state of a rule
* to DELETING
after you use the DeleteConfigRule
request
* to delete the rule. After Config deletes the rule, the rule and all of its
* evaluations are erased and are no longer available.
Indicates whether the Config rule is active or is currently being deleted by * Config. It can also indicate the evaluation status for the Config rule.
*Config sets the state of the rule to EVALUATING
temporarily
* after you use the StartConfigRulesEvaluation
request to evaluate
* your resources against the Config rule.
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.
Config temporarily sets the state of a rule
* to DELETING
after you use the DeleteConfigRule
request
* to delete the rule. After Config deletes the rule, the rule and all of its
* evaluations are erased and are no longer available.
Indicates whether the Config rule is active or is currently being deleted by * Config. It can also indicate the evaluation status for the Config rule.
*Config sets the state of the rule to EVALUATING
temporarily
* after you use the StartConfigRulesEvaluation
request to evaluate
* your resources against the Config rule.
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.
Config temporarily sets the state of a rule
* to DELETING
after you use the DeleteConfigRule
request
* to delete the rule. After Config deletes the rule, the rule and all of its
* evaluations are erased and are no longer available.
Indicates whether the Config rule is active or is currently being deleted by * Config. It can also indicate the evaluation status for the Config rule.
*Config sets the state of the rule to EVALUATING
temporarily
* after you use the StartConfigRulesEvaluation
request to evaluate
* your resources against the Config rule.
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.
Config temporarily sets the state of a rule
* to DELETING
after you use the DeleteConfigRule
request
* to delete the rule. After Config deletes the rule, the rule and all of its
* evaluations are erased and are no longer available.
Service principal name of the service that created the rule.
*The field is populated only if the service-linked rule is created by a * service. The field is empty if you create your own rule.
*/ inline const Aws::String& GetCreatedBy() const{ return m_createdBy; } /** *Service principal name of the service that created the rule.
*The field is populated only if the service-linked rule is created by a * service. The field is empty if you create your own rule.
*/ inline bool CreatedByHasBeenSet() const { return m_createdByHasBeenSet; } /** *Service principal name of the service that created the rule.
*The field is populated only if the service-linked rule is created by a * service. The field is empty if you create your own rule.
*/ inline void SetCreatedBy(const Aws::String& value) { m_createdByHasBeenSet = true; m_createdBy = value; } /** *Service principal name of the service that created the rule.
*The field is populated only if the service-linked rule is created by a * service. The field is empty if you create your own rule.
*/ inline void SetCreatedBy(Aws::String&& value) { m_createdByHasBeenSet = true; m_createdBy = std::move(value); } /** *Service principal name of the service that created the rule.
*The field is populated only if the service-linked rule is created by a * service. The field is empty if you create your own rule.
*/ inline void SetCreatedBy(const char* value) { m_createdByHasBeenSet = true; m_createdBy.assign(value); } /** *Service principal name of the service that created the rule.
*The field is populated only if the service-linked rule is created by a * service. The field is empty if you create your own rule.
*/ inline ConfigRule& WithCreatedBy(const Aws::String& value) { SetCreatedBy(value); return *this;} /** *Service principal name of the service that created the rule.
*The field is populated only if the service-linked rule is created by a * service. The field is empty if you create your own rule.
*/ inline ConfigRule& WithCreatedBy(Aws::String&& value) { SetCreatedBy(std::move(value)); return *this;} /** *Service principal name of the service that created the rule.
*The field is populated only if the service-linked rule is created by a * service. The field is empty if you create your own rule.
*/ inline ConfigRule& WithCreatedBy(const char* value) { SetCreatedBy(value); return *this;} /** *The modes the Config rule can be evaluated in. The valid values are distinct * objects. By default, the value is Detective evaluation mode only.
*/ inline const Aws::VectorThe modes the Config rule can be evaluated in. The valid values are distinct * objects. By default, the value is Detective evaluation mode only.
*/ inline bool EvaluationModesHasBeenSet() const { return m_evaluationModesHasBeenSet; } /** *The modes the Config rule can be evaluated in. The valid values are distinct * objects. By default, the value is Detective evaluation mode only.
*/ inline void SetEvaluationModes(const Aws::VectorThe modes the Config rule can be evaluated in. The valid values are distinct * objects. By default, the value is Detective evaluation mode only.
*/ inline void SetEvaluationModes(Aws::VectorThe modes the Config rule can be evaluated in. The valid values are distinct * objects. By default, the value is Detective evaluation mode only.
*/ inline ConfigRule& WithEvaluationModes(const Aws::VectorThe modes the Config rule can be evaluated in. The valid values are distinct * objects. By default, the value is Detective evaluation mode only.
*/ inline ConfigRule& WithEvaluationModes(Aws::VectorThe modes the Config rule can be evaluated in. The valid values are distinct * objects. By default, the value is Detective evaluation mode only.
*/ inline ConfigRule& AddEvaluationModes(const EvaluationModeConfiguration& value) { m_evaluationModesHasBeenSet = true; m_evaluationModes.push_back(value); return *this; } /** *The modes the Config rule can be evaluated in. The valid values are distinct * objects. By default, the value is Detective evaluation mode only.
*/ inline ConfigRule& AddEvaluationModes(EvaluationModeConfiguration&& value) { m_evaluationModesHasBeenSet = true; m_evaluationModes.push_back(std::move(value)); return *this; } private: Aws::String m_configRuleName; bool m_configRuleNameHasBeenSet = false; Aws::String m_configRuleArn; bool m_configRuleArnHasBeenSet = false; Aws::String m_configRuleId; bool m_configRuleIdHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Scope m_scope; bool m_scopeHasBeenSet = false; Source m_source; bool m_sourceHasBeenSet = false; Aws::String m_inputParameters; bool m_inputParametersHasBeenSet = false; MaximumExecutionFrequency m_maximumExecutionFrequency; bool m_maximumExecutionFrequencyHasBeenSet = false; ConfigRuleState m_configRuleState; bool m_configRuleStateHasBeenSet = false; Aws::String m_createdBy; bool m_createdByHasBeenSet = false; Aws::Vector