/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ConfigService { namespace Model { /** *

Defines which resources trigger an evaluation for an Config rule. The scope * can include one or more resource types, a combination of a tag key and value, or * a combination of one resource type and one resource ID. Specify a scope to * constrain which resources trigger an evaluation for a rule. Otherwise, * evaluations for the rule are triggered when any resource in your recording group * changes in configuration.

See Also:

AWS API * Reference

*/ class Scope { public: AWS_CONFIGSERVICE_API Scope(); AWS_CONFIGSERVICE_API Scope(Aws::Utils::Json::JsonView jsonValue); AWS_CONFIGSERVICE_API Scope& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_CONFIGSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The resource types of only those Amazon Web Services resources that you want * to trigger an evaluation for the rule. You can only specify one type if you also * specify a resource ID for ComplianceResourceId.

*/ inline const Aws::Vector& GetComplianceResourceTypes() const{ return m_complianceResourceTypes; } /** *

The resource types of only those Amazon Web Services resources that you want * to trigger an evaluation for the rule. You can only specify one type if you also * specify a resource ID for ComplianceResourceId.

*/ inline bool ComplianceResourceTypesHasBeenSet() const { return m_complianceResourceTypesHasBeenSet; } /** *

The resource types of only those Amazon Web Services resources that you want * to trigger an evaluation for the rule. You can only specify one type if you also * specify a resource ID for ComplianceResourceId.

*/ inline void SetComplianceResourceTypes(const Aws::Vector& value) { m_complianceResourceTypesHasBeenSet = true; m_complianceResourceTypes = value; } /** *

The resource types of only those Amazon Web Services resources that you want * to trigger an evaluation for the rule. You can only specify one type if you also * specify a resource ID for ComplianceResourceId.

*/ inline void SetComplianceResourceTypes(Aws::Vector&& value) { m_complianceResourceTypesHasBeenSet = true; m_complianceResourceTypes = std::move(value); } /** *

The resource types of only those Amazon Web Services resources that you want * to trigger an evaluation for the rule. You can only specify one type if you also * specify a resource ID for ComplianceResourceId.

*/ inline Scope& WithComplianceResourceTypes(const Aws::Vector& value) { SetComplianceResourceTypes(value); return *this;} /** *

The resource types of only those Amazon Web Services resources that you want * to trigger an evaluation for the rule. You can only specify one type if you also * specify a resource ID for ComplianceResourceId.

*/ inline Scope& WithComplianceResourceTypes(Aws::Vector&& value) { SetComplianceResourceTypes(std::move(value)); return *this;} /** *

The resource types of only those Amazon Web Services resources that you want * to trigger an evaluation for the rule. You can only specify one type if you also * specify a resource ID for ComplianceResourceId.

*/ inline Scope& AddComplianceResourceTypes(const Aws::String& value) { m_complianceResourceTypesHasBeenSet = true; m_complianceResourceTypes.push_back(value); return *this; } /** *

The resource types of only those Amazon Web Services resources that you want * to trigger an evaluation for the rule. You can only specify one type if you also * specify a resource ID for ComplianceResourceId.

*/ inline Scope& AddComplianceResourceTypes(Aws::String&& value) { m_complianceResourceTypesHasBeenSet = true; m_complianceResourceTypes.push_back(std::move(value)); return *this; } /** *

The resource types of only those Amazon Web Services resources that you want * to trigger an evaluation for the rule. You can only specify one type if you also * specify a resource ID for ComplianceResourceId.

*/ inline Scope& AddComplianceResourceTypes(const char* value) { m_complianceResourceTypesHasBeenSet = true; m_complianceResourceTypes.push_back(value); return *this; } /** *

The tag key that is applied to only those Amazon Web Services resources that * you want to trigger an evaluation for the rule.

*/ inline const Aws::String& GetTagKey() const{ return m_tagKey; } /** *

The tag key that is applied to only those Amazon Web Services resources that * you want to trigger an evaluation for the rule.

*/ inline bool TagKeyHasBeenSet() const { return m_tagKeyHasBeenSet; } /** *

The tag key that is applied to only those Amazon Web Services resources that * you want to trigger an evaluation for the rule.

*/ inline void SetTagKey(const Aws::String& value) { m_tagKeyHasBeenSet = true; m_tagKey = value; } /** *

The tag key that is applied to only those Amazon Web Services resources that * you want to trigger an evaluation for the rule.

*/ inline void SetTagKey(Aws::String&& value) { m_tagKeyHasBeenSet = true; m_tagKey = std::move(value); } /** *

The tag key that is applied to only those Amazon Web Services resources that * you want to trigger an evaluation for the rule.

*/ inline void SetTagKey(const char* value) { m_tagKeyHasBeenSet = true; m_tagKey.assign(value); } /** *

The tag key that is applied to only those Amazon Web Services resources that * you want to trigger an evaluation for the rule.

*/ inline Scope& WithTagKey(const Aws::String& value) { SetTagKey(value); return *this;} /** *

The tag key that is applied to only those Amazon Web Services resources that * you want to trigger an evaluation for the rule.

*/ inline Scope& WithTagKey(Aws::String&& value) { SetTagKey(std::move(value)); return *this;} /** *

The tag key that is applied to only those Amazon Web Services resources that * you want to trigger an evaluation for the rule.

*/ inline Scope& WithTagKey(const char* value) { SetTagKey(value); return *this;} /** *

The tag value applied to only those Amazon Web Services resources that you * want to trigger an evaluation for the rule. If you specify a value for * TagValue, you must also specify a value for * TagKey.

*/ inline const Aws::String& GetTagValue() const{ return m_tagValue; } /** *

The tag value applied to only those Amazon Web Services resources that you * want to trigger an evaluation for the rule. If you specify a value for * TagValue, you must also specify a value for * TagKey.

*/ inline bool TagValueHasBeenSet() const { return m_tagValueHasBeenSet; } /** *

The tag value applied to only those Amazon Web Services resources that you * want to trigger an evaluation for the rule. If you specify a value for * TagValue, you must also specify a value for * TagKey.

*/ inline void SetTagValue(const Aws::String& value) { m_tagValueHasBeenSet = true; m_tagValue = value; } /** *

The tag value applied to only those Amazon Web Services resources that you * want to trigger an evaluation for the rule. If you specify a value for * TagValue, you must also specify a value for * TagKey.

*/ inline void SetTagValue(Aws::String&& value) { m_tagValueHasBeenSet = true; m_tagValue = std::move(value); } /** *

The tag value applied to only those Amazon Web Services resources that you * want to trigger an evaluation for the rule. If you specify a value for * TagValue, you must also specify a value for * TagKey.

*/ inline void SetTagValue(const char* value) { m_tagValueHasBeenSet = true; m_tagValue.assign(value); } /** *

The tag value applied to only those Amazon Web Services resources that you * want to trigger an evaluation for the rule. If you specify a value for * TagValue, you must also specify a value for * TagKey.

*/ inline Scope& WithTagValue(const Aws::String& value) { SetTagValue(value); return *this;} /** *

The tag value applied to only those Amazon Web Services resources that you * want to trigger an evaluation for the rule. If you specify a value for * TagValue, you must also specify a value for * TagKey.

*/ inline Scope& WithTagValue(Aws::String&& value) { SetTagValue(std::move(value)); return *this;} /** *

The tag value applied to only those Amazon Web Services resources that you * want to trigger an evaluation for the rule. If you specify a value for * TagValue, you must also specify a value for * TagKey.

*/ inline Scope& WithTagValue(const char* value) { SetTagValue(value); return *this;} /** *

The ID of the only Amazon Web Services resource that you want to trigger an * evaluation for the rule. If you specify a resource ID, you must specify one * resource type for ComplianceResourceTypes.

*/ inline const Aws::String& GetComplianceResourceId() const{ return m_complianceResourceId; } /** *

The ID of the only Amazon Web Services resource that you want to trigger an * evaluation for the rule. If you specify a resource ID, you must specify one * resource type for ComplianceResourceTypes.

*/ inline bool ComplianceResourceIdHasBeenSet() const { return m_complianceResourceIdHasBeenSet; } /** *

The ID of the only Amazon Web Services resource that you want to trigger an * evaluation for the rule. If you specify a resource ID, you must specify one * resource type for ComplianceResourceTypes.

*/ inline void SetComplianceResourceId(const Aws::String& value) { m_complianceResourceIdHasBeenSet = true; m_complianceResourceId = value; } /** *

The ID of the only Amazon Web Services resource that you want to trigger an * evaluation for the rule. If you specify a resource ID, you must specify one * resource type for ComplianceResourceTypes.

*/ inline void SetComplianceResourceId(Aws::String&& value) { m_complianceResourceIdHasBeenSet = true; m_complianceResourceId = std::move(value); } /** *

The ID of the only Amazon Web Services resource that you want to trigger an * evaluation for the rule. If you specify a resource ID, you must specify one * resource type for ComplianceResourceTypes.

*/ inline void SetComplianceResourceId(const char* value) { m_complianceResourceIdHasBeenSet = true; m_complianceResourceId.assign(value); } /** *

The ID of the only Amazon Web Services resource that you want to trigger an * evaluation for the rule. If you specify a resource ID, you must specify one * resource type for ComplianceResourceTypes.

*/ inline Scope& WithComplianceResourceId(const Aws::String& value) { SetComplianceResourceId(value); return *this;} /** *

The ID of the only Amazon Web Services resource that you want to trigger an * evaluation for the rule. If you specify a resource ID, you must specify one * resource type for ComplianceResourceTypes.

*/ inline Scope& WithComplianceResourceId(Aws::String&& value) { SetComplianceResourceId(std::move(value)); return *this;} /** *

The ID of the only Amazon Web Services resource that you want to trigger an * evaluation for the rule. If you specify a resource ID, you must specify one * resource type for ComplianceResourceTypes.

*/ inline Scope& WithComplianceResourceId(const char* value) { SetComplianceResourceId(value); return *this;} private: Aws::Vector m_complianceResourceTypes; bool m_complianceResourceTypesHasBeenSet = false; Aws::String m_tagKey; bool m_tagKeyHasBeenSet = false; Aws::String m_tagValue; bool m_tagValueHasBeenSet = false; Aws::String m_complianceResourceId; bool m_complianceResourceIdHasBeenSet = false; }; } // namespace Model } // namespace ConfigService } // namespace Aws