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

The high-level properties of a rule group. This, along with the * RuleGroup, define the rule group. You can retrieve all objects for a rule * group by calling DescribeRuleGroup.

See Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) of the rule group.

If this * response is for a create request that had DryRun set to * TRUE, then this ARN is a placeholder that isn't attached to a valid * resource.

*/ inline const Aws::String& GetRuleGroupArn() const{ return m_ruleGroupArn; } /** *

The Amazon Resource Name (ARN) of the rule group.

If this * response is for a create request that had DryRun set to * TRUE, then this ARN is a placeholder that isn't attached to a valid * resource.

*/ inline bool RuleGroupArnHasBeenSet() const { return m_ruleGroupArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the rule group.

If this * response is for a create request that had DryRun set to * TRUE, then this ARN is a placeholder that isn't attached to a valid * resource.

*/ inline void SetRuleGroupArn(const Aws::String& value) { m_ruleGroupArnHasBeenSet = true; m_ruleGroupArn = value; } /** *

The Amazon Resource Name (ARN) of the rule group.

If this * response is for a create request that had DryRun set to * TRUE, then this ARN is a placeholder that isn't attached to a valid * resource.

*/ inline void SetRuleGroupArn(Aws::String&& value) { m_ruleGroupArnHasBeenSet = true; m_ruleGroupArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the rule group.

If this * response is for a create request that had DryRun set to * TRUE, then this ARN is a placeholder that isn't attached to a valid * resource.

*/ inline void SetRuleGroupArn(const char* value) { m_ruleGroupArnHasBeenSet = true; m_ruleGroupArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the rule group.

If this * response is for a create request that had DryRun set to * TRUE, then this ARN is a placeholder that isn't attached to a valid * resource.

*/ inline RuleGroupResponse& WithRuleGroupArn(const Aws::String& value) { SetRuleGroupArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the rule group.

If this * response is for a create request that had DryRun set to * TRUE, then this ARN is a placeholder that isn't attached to a valid * resource.

*/ inline RuleGroupResponse& WithRuleGroupArn(Aws::String&& value) { SetRuleGroupArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the rule group.

If this * response is for a create request that had DryRun set to * TRUE, then this ARN is a placeholder that isn't attached to a valid * resource.

*/ inline RuleGroupResponse& WithRuleGroupArn(const char* value) { SetRuleGroupArn(value); return *this;} /** *

The descriptive name of the rule group. You can't change the name of a rule * group after you create it.

*/ inline const Aws::String& GetRuleGroupName() const{ return m_ruleGroupName; } /** *

The descriptive name of the rule group. You can't change the name of a rule * group after you create it.

*/ inline bool RuleGroupNameHasBeenSet() const { return m_ruleGroupNameHasBeenSet; } /** *

The descriptive name of the rule group. You can't change the name of a rule * group after you create it.

*/ inline void SetRuleGroupName(const Aws::String& value) { m_ruleGroupNameHasBeenSet = true; m_ruleGroupName = value; } /** *

The descriptive name of the rule group. You can't change the name of a rule * group after you create it.

*/ inline void SetRuleGroupName(Aws::String&& value) { m_ruleGroupNameHasBeenSet = true; m_ruleGroupName = std::move(value); } /** *

The descriptive name of the rule group. You can't change the name of a rule * group after you create it.

*/ inline void SetRuleGroupName(const char* value) { m_ruleGroupNameHasBeenSet = true; m_ruleGroupName.assign(value); } /** *

The descriptive name of the rule group. You can't change the name of a rule * group after you create it.

*/ inline RuleGroupResponse& WithRuleGroupName(const Aws::String& value) { SetRuleGroupName(value); return *this;} /** *

The descriptive name of the rule group. You can't change the name of a rule * group after you create it.

*/ inline RuleGroupResponse& WithRuleGroupName(Aws::String&& value) { SetRuleGroupName(std::move(value)); return *this;} /** *

The descriptive name of the rule group. You can't change the name of a rule * group after you create it.

*/ inline RuleGroupResponse& WithRuleGroupName(const char* value) { SetRuleGroupName(value); return *this;} /** *

The unique identifier for the rule group.

*/ inline const Aws::String& GetRuleGroupId() const{ return m_ruleGroupId; } /** *

The unique identifier for the rule group.

*/ inline bool RuleGroupIdHasBeenSet() const { return m_ruleGroupIdHasBeenSet; } /** *

The unique identifier for the rule group.

*/ inline void SetRuleGroupId(const Aws::String& value) { m_ruleGroupIdHasBeenSet = true; m_ruleGroupId = value; } /** *

The unique identifier for the rule group.

*/ inline void SetRuleGroupId(Aws::String&& value) { m_ruleGroupIdHasBeenSet = true; m_ruleGroupId = std::move(value); } /** *

The unique identifier for the rule group.

*/ inline void SetRuleGroupId(const char* value) { m_ruleGroupIdHasBeenSet = true; m_ruleGroupId.assign(value); } /** *

The unique identifier for the rule group.

*/ inline RuleGroupResponse& WithRuleGroupId(const Aws::String& value) { SetRuleGroupId(value); return *this;} /** *

The unique identifier for the rule group.

*/ inline RuleGroupResponse& WithRuleGroupId(Aws::String&& value) { SetRuleGroupId(std::move(value)); return *this;} /** *

The unique identifier for the rule group.

*/ inline RuleGroupResponse& WithRuleGroupId(const char* value) { SetRuleGroupId(value); return *this;} /** *

A description of the rule group.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description of the rule group.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description of the rule group.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description of the rule group.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description of the rule group.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description of the rule group.

*/ inline RuleGroupResponse& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description of the rule group.

*/ inline RuleGroupResponse& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description of the rule group.

*/ inline RuleGroupResponse& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

Indicates whether the rule group is stateless or stateful. If the rule group * is stateless, it contains stateless rules. If it is stateful, it contains * stateful rules.

*/ inline const RuleGroupType& GetType() const{ return m_type; } /** *

Indicates whether the rule group is stateless or stateful. If the rule group * is stateless, it contains stateless rules. If it is stateful, it contains * stateful rules.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

Indicates whether the rule group is stateless or stateful. If the rule group * is stateless, it contains stateless rules. If it is stateful, it contains * stateful rules.

*/ inline void SetType(const RuleGroupType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

Indicates whether the rule group is stateless or stateful. If the rule group * is stateless, it contains stateless rules. If it is stateful, it contains * stateful rules.

*/ inline void SetType(RuleGroupType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

Indicates whether the rule group is stateless or stateful. If the rule group * is stateless, it contains stateless rules. If it is stateful, it contains * stateful rules.

*/ inline RuleGroupResponse& WithType(const RuleGroupType& value) { SetType(value); return *this;} /** *

Indicates whether the rule group is stateless or stateful. If the rule group * is stateless, it contains stateless rules. If it is stateful, it contains * stateful rules.

*/ inline RuleGroupResponse& WithType(RuleGroupType&& value) { SetType(std::move(value)); return *this;} /** *

The maximum operating resources that this rule group can use. Rule group * capacity is fixed at creation. When you update a rule group, you are limited to * this capacity. When you reference a rule group from a firewall policy, Network * Firewall reserves this capacity for the rule group.

You can retrieve the * capacity that would be required for a rule group before you create the rule * group by calling CreateRuleGroup with DryRun set to * TRUE.

*/ inline int GetCapacity() const{ return m_capacity; } /** *

The maximum operating resources that this rule group can use. Rule group * capacity is fixed at creation. When you update a rule group, you are limited to * this capacity. When you reference a rule group from a firewall policy, Network * Firewall reserves this capacity for the rule group.

You can retrieve the * capacity that would be required for a rule group before you create the rule * group by calling CreateRuleGroup with DryRun set to * TRUE.

*/ inline bool CapacityHasBeenSet() const { return m_capacityHasBeenSet; } /** *

The maximum operating resources that this rule group can use. Rule group * capacity is fixed at creation. When you update a rule group, you are limited to * this capacity. When you reference a rule group from a firewall policy, Network * Firewall reserves this capacity for the rule group.

You can retrieve the * capacity that would be required for a rule group before you create the rule * group by calling CreateRuleGroup with DryRun set to * TRUE.

*/ inline void SetCapacity(int value) { m_capacityHasBeenSet = true; m_capacity = value; } /** *

The maximum operating resources that this rule group can use. Rule group * capacity is fixed at creation. When you update a rule group, you are limited to * this capacity. When you reference a rule group from a firewall policy, Network * Firewall reserves this capacity for the rule group.

You can retrieve the * capacity that would be required for a rule group before you create the rule * group by calling CreateRuleGroup with DryRun set to * TRUE.

*/ inline RuleGroupResponse& WithCapacity(int value) { SetCapacity(value); return *this;} /** *

Detailed information about the current status of a rule group.

*/ inline const ResourceStatus& GetRuleGroupStatus() const{ return m_ruleGroupStatus; } /** *

Detailed information about the current status of a rule group.

*/ inline bool RuleGroupStatusHasBeenSet() const { return m_ruleGroupStatusHasBeenSet; } /** *

Detailed information about the current status of a rule group.

*/ inline void SetRuleGroupStatus(const ResourceStatus& value) { m_ruleGroupStatusHasBeenSet = true; m_ruleGroupStatus = value; } /** *

Detailed information about the current status of a rule group.

*/ inline void SetRuleGroupStatus(ResourceStatus&& value) { m_ruleGroupStatusHasBeenSet = true; m_ruleGroupStatus = std::move(value); } /** *

Detailed information about the current status of a rule group.

*/ inline RuleGroupResponse& WithRuleGroupStatus(const ResourceStatus& value) { SetRuleGroupStatus(value); return *this;} /** *

Detailed information about the current status of a rule group.

*/ inline RuleGroupResponse& WithRuleGroupStatus(ResourceStatus&& value) { SetRuleGroupStatus(std::move(value)); return *this;} /** *

The key:value pairs to associate with the resource.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The key:value pairs to associate with the resource.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The key:value pairs to associate with the resource.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The key:value pairs to associate with the resource.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The key:value pairs to associate with the resource.

*/ inline RuleGroupResponse& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The key:value pairs to associate with the resource.

*/ inline RuleGroupResponse& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The key:value pairs to associate with the resource.

*/ inline RuleGroupResponse& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The key:value pairs to associate with the resource.

*/ inline RuleGroupResponse& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The number of capacity units currently consumed by the rule group rules.

*/ inline int GetConsumedCapacity() const{ return m_consumedCapacity; } /** *

The number of capacity units currently consumed by the rule group rules.

*/ inline bool ConsumedCapacityHasBeenSet() const { return m_consumedCapacityHasBeenSet; } /** *

The number of capacity units currently consumed by the rule group rules.

*/ inline void SetConsumedCapacity(int value) { m_consumedCapacityHasBeenSet = true; m_consumedCapacity = value; } /** *

The number of capacity units currently consumed by the rule group rules.

*/ inline RuleGroupResponse& WithConsumedCapacity(int value) { SetConsumedCapacity(value); return *this;} /** *

The number of firewall policies that use this rule group.

*/ inline int GetNumberOfAssociations() const{ return m_numberOfAssociations; } /** *

The number of firewall policies that use this rule group.

*/ inline bool NumberOfAssociationsHasBeenSet() const { return m_numberOfAssociationsHasBeenSet; } /** *

The number of firewall policies that use this rule group.

*/ inline void SetNumberOfAssociations(int value) { m_numberOfAssociationsHasBeenSet = true; m_numberOfAssociations = value; } /** *

The number of firewall policies that use this rule group.

*/ inline RuleGroupResponse& WithNumberOfAssociations(int value) { SetNumberOfAssociations(value); return *this;} /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your rule group.

*/ inline const EncryptionConfiguration& GetEncryptionConfiguration() const{ return m_encryptionConfiguration; } /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your rule group.

*/ inline bool EncryptionConfigurationHasBeenSet() const { return m_encryptionConfigurationHasBeenSet; } /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your rule group.

*/ inline void SetEncryptionConfiguration(const EncryptionConfiguration& value) { m_encryptionConfigurationHasBeenSet = true; m_encryptionConfiguration = value; } /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your rule group.

*/ inline void SetEncryptionConfiguration(EncryptionConfiguration&& value) { m_encryptionConfigurationHasBeenSet = true; m_encryptionConfiguration = std::move(value); } /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your rule group.

*/ inline RuleGroupResponse& WithEncryptionConfiguration(const EncryptionConfiguration& value) { SetEncryptionConfiguration(value); return *this;} /** *

A complex type that contains the Amazon Web Services KMS encryption * configuration settings for your rule group.

*/ inline RuleGroupResponse& WithEncryptionConfiguration(EncryptionConfiguration&& value) { SetEncryptionConfiguration(std::move(value)); return *this;} /** *

A complex type that contains metadata about the rule group that your own rule * group is copied from. You can use the metadata to track the version updates made * to the originating rule group.

*/ inline const SourceMetadata& GetSourceMetadata() const{ return m_sourceMetadata; } /** *

A complex type that contains metadata about the rule group that your own rule * group is copied from. You can use the metadata to track the version updates made * to the originating rule group.

*/ inline bool SourceMetadataHasBeenSet() const { return m_sourceMetadataHasBeenSet; } /** *

A complex type that contains metadata about the rule group that your own rule * group is copied from. You can use the metadata to track the version updates made * to the originating rule group.

*/ inline void SetSourceMetadata(const SourceMetadata& value) { m_sourceMetadataHasBeenSet = true; m_sourceMetadata = value; } /** *

A complex type that contains metadata about the rule group that your own rule * group is copied from. You can use the metadata to track the version updates made * to the originating rule group.

*/ inline void SetSourceMetadata(SourceMetadata&& value) { m_sourceMetadataHasBeenSet = true; m_sourceMetadata = std::move(value); } /** *

A complex type that contains metadata about the rule group that your own rule * group is copied from. You can use the metadata to track the version updates made * to the originating rule group.

*/ inline RuleGroupResponse& WithSourceMetadata(const SourceMetadata& value) { SetSourceMetadata(value); return *this;} /** *

A complex type that contains metadata about the rule group that your own rule * group is copied from. You can use the metadata to track the version updates made * to the originating rule group.

*/ inline RuleGroupResponse& WithSourceMetadata(SourceMetadata&& value) { SetSourceMetadata(std::move(value)); return *this;} /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to record changes to the managed rule group. You can subscribe * to the SNS topic to receive notifications when the managed rule group is * modified, such as for new versions and for version expiration. For more * information, see the Amazon Simple * Notification Service Developer Guide..

*/ inline const Aws::String& GetSnsTopic() const{ return m_snsTopic; } /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to record changes to the managed rule group. You can subscribe * to the SNS topic to receive notifications when the managed rule group is * modified, such as for new versions and for version expiration. For more * information, see the Amazon Simple * Notification Service Developer Guide..

*/ inline bool SnsTopicHasBeenSet() const { return m_snsTopicHasBeenSet; } /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to record changes to the managed rule group. You can subscribe * to the SNS topic to receive notifications when the managed rule group is * modified, such as for new versions and for version expiration. For more * information, see the Amazon Simple * Notification Service Developer Guide..

*/ inline void SetSnsTopic(const Aws::String& value) { m_snsTopicHasBeenSet = true; m_snsTopic = value; } /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to record changes to the managed rule group. You can subscribe * to the SNS topic to receive notifications when the managed rule group is * modified, such as for new versions and for version expiration. For more * information, see the Amazon Simple * Notification Service Developer Guide..

*/ inline void SetSnsTopic(Aws::String&& value) { m_snsTopicHasBeenSet = true; m_snsTopic = std::move(value); } /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to record changes to the managed rule group. You can subscribe * to the SNS topic to receive notifications when the managed rule group is * modified, such as for new versions and for version expiration. For more * information, see the Amazon Simple * Notification Service Developer Guide..

*/ inline void SetSnsTopic(const char* value) { m_snsTopicHasBeenSet = true; m_snsTopic.assign(value); } /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to record changes to the managed rule group. You can subscribe * to the SNS topic to receive notifications when the managed rule group is * modified, such as for new versions and for version expiration. For more * information, see the Amazon Simple * Notification Service Developer Guide..

*/ inline RuleGroupResponse& WithSnsTopic(const Aws::String& value) { SetSnsTopic(value); return *this;} /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to record changes to the managed rule group. You can subscribe * to the SNS topic to receive notifications when the managed rule group is * modified, such as for new versions and for version expiration. For more * information, see the Amazon Simple * Notification Service Developer Guide..

*/ inline RuleGroupResponse& WithSnsTopic(Aws::String&& value) { SetSnsTopic(std::move(value)); return *this;} /** *

The Amazon resource name (ARN) of the Amazon Simple Notification Service SNS * topic that's used to record changes to the managed rule group. You can subscribe * to the SNS topic to receive notifications when the managed rule group is * modified, such as for new versions and for version expiration. For more * information, see the Amazon Simple * Notification Service Developer Guide..

*/ inline RuleGroupResponse& WithSnsTopic(const char* value) { SetSnsTopic(value); return *this;} /** *

The last time that the rule group was changed.

*/ inline const Aws::Utils::DateTime& GetLastModifiedTime() const{ return m_lastModifiedTime; } /** *

The last time that the rule group was changed.

*/ inline bool LastModifiedTimeHasBeenSet() const { return m_lastModifiedTimeHasBeenSet; } /** *

The last time that the rule group was changed.

*/ inline void SetLastModifiedTime(const Aws::Utils::DateTime& value) { m_lastModifiedTimeHasBeenSet = true; m_lastModifiedTime = value; } /** *

The last time that the rule group was changed.

*/ inline void SetLastModifiedTime(Aws::Utils::DateTime&& value) { m_lastModifiedTimeHasBeenSet = true; m_lastModifiedTime = std::move(value); } /** *

The last time that the rule group was changed.

*/ inline RuleGroupResponse& WithLastModifiedTime(const Aws::Utils::DateTime& value) { SetLastModifiedTime(value); return *this;} /** *

The last time that the rule group was changed.

*/ inline RuleGroupResponse& WithLastModifiedTime(Aws::Utils::DateTime&& value) { SetLastModifiedTime(std::move(value)); return *this;} private: Aws::String m_ruleGroupArn; bool m_ruleGroupArnHasBeenSet = false; Aws::String m_ruleGroupName; bool m_ruleGroupNameHasBeenSet = false; Aws::String m_ruleGroupId; bool m_ruleGroupIdHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; RuleGroupType m_type; bool m_typeHasBeenSet = false; int m_capacity; bool m_capacityHasBeenSet = false; ResourceStatus m_ruleGroupStatus; bool m_ruleGroupStatusHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; int m_consumedCapacity; bool m_consumedCapacityHasBeenSet = false; int m_numberOfAssociations; bool m_numberOfAssociationsHasBeenSet = false; EncryptionConfiguration m_encryptionConfiguration; bool m_encryptionConfigurationHasBeenSet = false; SourceMetadata m_sourceMetadata; bool m_sourceMetadataHasBeenSet = false; Aws::String m_snsTopic; bool m_snsTopicHasBeenSet = false; Aws::Utils::DateTime m_lastModifiedTime; bool m_lastModifiedTimeHasBeenSet = false; }; } // namespace Model } // namespace NetworkFirewall } // namespace Aws