/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The object that defines the rules in a rule group. This, along with
* RuleGroupResponse, define the rule group. You can retrieve all objects
* for a rule group by calling DescribeRuleGroup. Network Firewall
* uses a rule group to inspect and control network traffic. You define stateless
* rule groups to inspect individual packets and you define stateful rule groups to
* inspect packets in the context of their traffic flow. To use a rule
* group, you include it by reference in an Network Firewall firewall policy, then
* you use the policy in a firewall. You can reference a rule group from more than
* one firewall policy, and you can use a firewall policy in more than one
* firewall. See Also:
AWS
* API Reference
Settings that are available for use in the rules in the rule group. You can * only use these for stateful rule groups.
*/ inline const RuleVariables& GetRuleVariables() const{ return m_ruleVariables; } /** *Settings that are available for use in the rules in the rule group. You can * only use these for stateful rule groups.
*/ inline bool RuleVariablesHasBeenSet() const { return m_ruleVariablesHasBeenSet; } /** *Settings that are available for use in the rules in the rule group. You can * only use these for stateful rule groups.
*/ inline void SetRuleVariables(const RuleVariables& value) { m_ruleVariablesHasBeenSet = true; m_ruleVariables = value; } /** *Settings that are available for use in the rules in the rule group. You can * only use these for stateful rule groups.
*/ inline void SetRuleVariables(RuleVariables&& value) { m_ruleVariablesHasBeenSet = true; m_ruleVariables = std::move(value); } /** *Settings that are available for use in the rules in the rule group. You can * only use these for stateful rule groups.
*/ inline RuleGroup& WithRuleVariables(const RuleVariables& value) { SetRuleVariables(value); return *this;} /** *Settings that are available for use in the rules in the rule group. You can * only use these for stateful rule groups.
*/ inline RuleGroup& WithRuleVariables(RuleVariables&& value) { SetRuleVariables(std::move(value)); return *this;} /** *The list of a rule group's reference sets.
*/ inline const ReferenceSets& GetReferenceSets() const{ return m_referenceSets; } /** *The list of a rule group's reference sets.
*/ inline bool ReferenceSetsHasBeenSet() const { return m_referenceSetsHasBeenSet; } /** *The list of a rule group's reference sets.
*/ inline void SetReferenceSets(const ReferenceSets& value) { m_referenceSetsHasBeenSet = true; m_referenceSets = value; } /** *The list of a rule group's reference sets.
*/ inline void SetReferenceSets(ReferenceSets&& value) { m_referenceSetsHasBeenSet = true; m_referenceSets = std::move(value); } /** *The list of a rule group's reference sets.
*/ inline RuleGroup& WithReferenceSets(const ReferenceSets& value) { SetReferenceSets(value); return *this;} /** *The list of a rule group's reference sets.
*/ inline RuleGroup& WithReferenceSets(ReferenceSets&& value) { SetReferenceSets(std::move(value)); return *this;} /** *The stateful rules or stateless rules for the rule group.
*/ inline const RulesSource& GetRulesSource() const{ return m_rulesSource; } /** *The stateful rules or stateless rules for the rule group.
*/ inline bool RulesSourceHasBeenSet() const { return m_rulesSourceHasBeenSet; } /** *The stateful rules or stateless rules for the rule group.
*/ inline void SetRulesSource(const RulesSource& value) { m_rulesSourceHasBeenSet = true; m_rulesSource = value; } /** *The stateful rules or stateless rules for the rule group.
*/ inline void SetRulesSource(RulesSource&& value) { m_rulesSourceHasBeenSet = true; m_rulesSource = std::move(value); } /** *The stateful rules or stateless rules for the rule group.
*/ inline RuleGroup& WithRulesSource(const RulesSource& value) { SetRulesSource(value); return *this;} /** *The stateful rules or stateless rules for the rule group.
*/ inline RuleGroup& WithRulesSource(RulesSource&& value) { SetRulesSource(std::move(value)); return *this;} /** *Additional options governing how Network Firewall handles stateful rules. The * policies where you use your stateful rule group must have stateful rule options * settings that are compatible with these settings.
*/ inline const StatefulRuleOptions& GetStatefulRuleOptions() const{ return m_statefulRuleOptions; } /** *Additional options governing how Network Firewall handles stateful rules. The * policies where you use your stateful rule group must have stateful rule options * settings that are compatible with these settings.
*/ inline bool StatefulRuleOptionsHasBeenSet() const { return m_statefulRuleOptionsHasBeenSet; } /** *Additional options governing how Network Firewall handles stateful rules. The * policies where you use your stateful rule group must have stateful rule options * settings that are compatible with these settings.
*/ inline void SetStatefulRuleOptions(const StatefulRuleOptions& value) { m_statefulRuleOptionsHasBeenSet = true; m_statefulRuleOptions = value; } /** *Additional options governing how Network Firewall handles stateful rules. The * policies where you use your stateful rule group must have stateful rule options * settings that are compatible with these settings.
*/ inline void SetStatefulRuleOptions(StatefulRuleOptions&& value) { m_statefulRuleOptionsHasBeenSet = true; m_statefulRuleOptions = std::move(value); } /** *Additional options governing how Network Firewall handles stateful rules. The * policies where you use your stateful rule group must have stateful rule options * settings that are compatible with these settings.
*/ inline RuleGroup& WithStatefulRuleOptions(const StatefulRuleOptions& value) { SetStatefulRuleOptions(value); return *this;} /** *Additional options governing how Network Firewall handles stateful rules. The * policies where you use your stateful rule group must have stateful rule options * settings that are compatible with these settings.
*/ inline RuleGroup& WithStatefulRuleOptions(StatefulRuleOptions&& value) { SetStatefulRuleOptions(std::move(value)); return *this;} private: RuleVariables m_ruleVariables; bool m_ruleVariablesHasBeenSet = false; ReferenceSets m_referenceSets; bool m_referenceSetsHasBeenSet = false; RulesSource m_rulesSource; bool m_rulesSourceHasBeenSet = false; StatefulRuleOptions m_statefulRuleOptions; bool m_statefulRuleOptionsHasBeenSet = false; }; } // namespace Model } // namespace NetworkFirewall } // namespace Aws