/** * 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 SecurityHub { namespace Model { /** *

Details about an Network Firewall rule group. Rule groups are used to inspect * and control network traffic. Stateless rule groups apply to individual packets. * Stateful rule groups apply to packets in the context of their traffic flow.

*

Rule groups are referenced in firewall policies.

See Also:

* AWS * API Reference

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

The maximum number of operating resources that this rule group can use.

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

The maximum number of operating resources that this rule group can use.

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

The maximum number of operating resources that this rule group can use.

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

The maximum number of operating resources that this rule group can use.

*/ inline AwsNetworkFirewallRuleGroupDetails& WithCapacity(int value) { SetCapacity(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 AwsNetworkFirewallRuleGroupDetails& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description of the rule group.

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

A description of the rule group.

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

Details about the rule group.

*/ inline const RuleGroupDetails& GetRuleGroup() const{ return m_ruleGroup; } /** *

Details about the rule group.

*/ inline bool RuleGroupHasBeenSet() const { return m_ruleGroupHasBeenSet; } /** *

Details about the rule group.

*/ inline void SetRuleGroup(const RuleGroupDetails& value) { m_ruleGroupHasBeenSet = true; m_ruleGroup = value; } /** *

Details about the rule group.

*/ inline void SetRuleGroup(RuleGroupDetails&& value) { m_ruleGroupHasBeenSet = true; m_ruleGroup = std::move(value); } /** *

Details about the rule group.

*/ inline AwsNetworkFirewallRuleGroupDetails& WithRuleGroup(const RuleGroupDetails& value) { SetRuleGroup(value); return *this;} /** *

Details about the rule group.

*/ inline AwsNetworkFirewallRuleGroupDetails& WithRuleGroup(RuleGroupDetails&& value) { SetRuleGroup(std::move(value)); return *this;} /** *

The ARN of the rule group.

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

The ARN of the rule group.

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

The ARN of the rule group.

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

The ARN of the rule group.

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

The ARN of the rule group.

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

The ARN of the rule group.

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

The ARN of the rule group.

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

The ARN of the rule group.

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

The identifier of the rule group.

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

The identifier of the rule group.

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

The identifier of the rule group.

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

The identifier of the rule group.

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

The identifier of the rule group.

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

The identifier of the rule group.

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

The identifier of the rule group.

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

The identifier of the rule group.

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

The descriptive name of the rule group.

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

The descriptive name of the rule group.

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

The descriptive name of the rule group.

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

The descriptive name of the rule group.

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

The descriptive name of the rule group.

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

The descriptive name of the rule group.

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

The descriptive name of the rule group.

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

The descriptive name of the rule group.

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

The type of rule group. A rule group can be stateful or stateless.

*/ inline const Aws::String& GetType() const{ return m_type; } /** *

The type of rule group. A rule group can be stateful or stateless.

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

The type of rule group. A rule group can be stateful or stateless.

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

The type of rule group. A rule group can be stateful or stateless.

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

The type of rule group. A rule group can be stateful or stateless.

*/ inline void SetType(const char* value) { m_typeHasBeenSet = true; m_type.assign(value); } /** *

The type of rule group. A rule group can be stateful or stateless.

*/ inline AwsNetworkFirewallRuleGroupDetails& WithType(const Aws::String& value) { SetType(value); return *this;} /** *

The type of rule group. A rule group can be stateful or stateless.

*/ inline AwsNetworkFirewallRuleGroupDetails& WithType(Aws::String&& value) { SetType(std::move(value)); return *this;} /** *

The type of rule group. A rule group can be stateful or stateless.

*/ inline AwsNetworkFirewallRuleGroupDetails& WithType(const char* value) { SetType(value); return *this;} private: int m_capacity; bool m_capacityHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; RuleGroupDetails m_ruleGroup; bool m_ruleGroupHasBeenSet = false; Aws::String m_ruleGroupArn; bool m_ruleGroupArnHasBeenSet = false; Aws::String m_ruleGroupId; bool m_ruleGroupIdHasBeenSet = false; Aws::String m_ruleGroupName; bool m_ruleGroupNameHasBeenSet = false; Aws::String m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws