/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include The firewall policy defines the behavior of a firewall using a collection of
* stateless and stateful rule groups and other settings. You can use one firewall
* policy for multiple firewalls. This, along with
* FirewallPolicyResponse, define the policy. You can retrieve all objects
* for a firewall policy by calling DescribeFirewallPolicy.See
* Also:
AWS
* API Reference
References to the stateless rule groups that are used in the policy. These * define the matching criteria in stateless rules.
*/ inline const Aws::VectorReferences to the stateless rule groups that are used in the policy. These * define the matching criteria in stateless rules.
*/ inline bool StatelessRuleGroupReferencesHasBeenSet() const { return m_statelessRuleGroupReferencesHasBeenSet; } /** *References to the stateless rule groups that are used in the policy. These * define the matching criteria in stateless rules.
*/ inline void SetStatelessRuleGroupReferences(const Aws::VectorReferences to the stateless rule groups that are used in the policy. These * define the matching criteria in stateless rules.
*/ inline void SetStatelessRuleGroupReferences(Aws::VectorReferences to the stateless rule groups that are used in the policy. These * define the matching criteria in stateless rules.
*/ inline FirewallPolicy& WithStatelessRuleGroupReferences(const Aws::VectorReferences to the stateless rule groups that are used in the policy. These * define the matching criteria in stateless rules.
*/ inline FirewallPolicy& WithStatelessRuleGroupReferences(Aws::VectorReferences to the stateless rule groups that are used in the policy. These * define the matching criteria in stateless rules.
*/ inline FirewallPolicy& AddStatelessRuleGroupReferences(const StatelessRuleGroupReference& value) { m_statelessRuleGroupReferencesHasBeenSet = true; m_statelessRuleGroupReferences.push_back(value); return *this; } /** *References to the stateless rule groups that are used in the policy. These * define the matching criteria in stateless rules.
*/ inline FirewallPolicy& AddStatelessRuleGroupReferences(StatelessRuleGroupReference&& value) { m_statelessRuleGroupReferencesHasBeenSet = true; m_statelessRuleGroupReferences.push_back(std::move(value)); return *this; } /** *The actions to take on a packet if it doesn't match any of the stateless
* rules in the policy. If you want non-matching packets to be forwarded for
* stateful inspection, specify aws:forward_to_sfe
.
You must
* specify one of the standard actions: aws:pass
,
* aws:drop
, or aws:forward_to_sfe
. In addition, you can
* specify custom actions that are compatible with your standard section
* choice.
For example, you could specify ["aws:pass"]
or you
* could specify ["aws:pass", “customActionName”]
. For information
* about compatibility, see the custom action descriptions under
* CustomAction.
The actions to take on a packet if it doesn't match any of the stateless
* rules in the policy. If you want non-matching packets to be forwarded for
* stateful inspection, specify aws:forward_to_sfe
.
You must
* specify one of the standard actions: aws:pass
,
* aws:drop
, or aws:forward_to_sfe
. In addition, you can
* specify custom actions that are compatible with your standard section
* choice.
For example, you could specify ["aws:pass"]
or you
* could specify ["aws:pass", “customActionName”]
. For information
* about compatibility, see the custom action descriptions under
* CustomAction.
The actions to take on a packet if it doesn't match any of the stateless
* rules in the policy. If you want non-matching packets to be forwarded for
* stateful inspection, specify aws:forward_to_sfe
.
You must
* specify one of the standard actions: aws:pass
,
* aws:drop
, or aws:forward_to_sfe
. In addition, you can
* specify custom actions that are compatible with your standard section
* choice.
For example, you could specify ["aws:pass"]
or you
* could specify ["aws:pass", “customActionName”]
. For information
* about compatibility, see the custom action descriptions under
* CustomAction.
The actions to take on a packet if it doesn't match any of the stateless
* rules in the policy. If you want non-matching packets to be forwarded for
* stateful inspection, specify aws:forward_to_sfe
.
You must
* specify one of the standard actions: aws:pass
,
* aws:drop
, or aws:forward_to_sfe
. In addition, you can
* specify custom actions that are compatible with your standard section
* choice.
For example, you could specify ["aws:pass"]
or you
* could specify ["aws:pass", “customActionName”]
. For information
* about compatibility, see the custom action descriptions under
* CustomAction.
The actions to take on a packet if it doesn't match any of the stateless
* rules in the policy. If you want non-matching packets to be forwarded for
* stateful inspection, specify aws:forward_to_sfe
.
You must
* specify one of the standard actions: aws:pass
,
* aws:drop
, or aws:forward_to_sfe
. In addition, you can
* specify custom actions that are compatible with your standard section
* choice.
For example, you could specify ["aws:pass"]
or you
* could specify ["aws:pass", “customActionName”]
. For information
* about compatibility, see the custom action descriptions under
* CustomAction.
The actions to take on a packet if it doesn't match any of the stateless
* rules in the policy. If you want non-matching packets to be forwarded for
* stateful inspection, specify aws:forward_to_sfe
.
You must
* specify one of the standard actions: aws:pass
,
* aws:drop
, or aws:forward_to_sfe
. In addition, you can
* specify custom actions that are compatible with your standard section
* choice.
For example, you could specify ["aws:pass"]
or you
* could specify ["aws:pass", “customActionName”]
. For information
* about compatibility, see the custom action descriptions under
* CustomAction.
The actions to take on a packet if it doesn't match any of the stateless
* rules in the policy. If you want non-matching packets to be forwarded for
* stateful inspection, specify aws:forward_to_sfe
.
You must
* specify one of the standard actions: aws:pass
,
* aws:drop
, or aws:forward_to_sfe
. In addition, you can
* specify custom actions that are compatible with your standard section
* choice.
For example, you could specify ["aws:pass"]
or you
* could specify ["aws:pass", “customActionName”]
. For information
* about compatibility, see the custom action descriptions under
* CustomAction.
The actions to take on a packet if it doesn't match any of the stateless
* rules in the policy. If you want non-matching packets to be forwarded for
* stateful inspection, specify aws:forward_to_sfe
.
You must
* specify one of the standard actions: aws:pass
,
* aws:drop
, or aws:forward_to_sfe
. In addition, you can
* specify custom actions that are compatible with your standard section
* choice.
For example, you could specify ["aws:pass"]
or you
* could specify ["aws:pass", “customActionName”]
. For information
* about compatibility, see the custom action descriptions under
* CustomAction.
The actions to take on a packet if it doesn't match any of the stateless
* rules in the policy. If you want non-matching packets to be forwarded for
* stateful inspection, specify aws:forward_to_sfe
.
You must
* specify one of the standard actions: aws:pass
,
* aws:drop
, or aws:forward_to_sfe
. In addition, you can
* specify custom actions that are compatible with your standard section
* choice.
For example, you could specify ["aws:pass"]
or you
* could specify ["aws:pass", “customActionName”]
. For information
* about compatibility, see the custom action descriptions under
* CustomAction.
The actions to take on a fragmented UDP packet if it doesn't match any of the
* stateless rules in the policy. Network Firewall only manages UDP packet
* fragments and silently drops packet fragments for other protocols. If you want
* non-matching fragmented UDP packets to be forwarded for stateful inspection,
* specify aws:forward_to_sfe
.
You must specify one of the
* standard actions: aws:pass
, aws:drop
, or
* aws:forward_to_sfe
. In addition, you can specify custom actions
* that are compatible with your standard section choice.
For example, you
* could specify ["aws:pass"]
or you could specify ["aws:pass",
* “customActionName”]
. For information about compatibility, see the custom
* action descriptions under CustomAction.
The actions to take on a fragmented UDP packet if it doesn't match any of the
* stateless rules in the policy. Network Firewall only manages UDP packet
* fragments and silently drops packet fragments for other protocols. If you want
* non-matching fragmented UDP packets to be forwarded for stateful inspection,
* specify aws:forward_to_sfe
.
You must specify one of the
* standard actions: aws:pass
, aws:drop
, or
* aws:forward_to_sfe
. In addition, you can specify custom actions
* that are compatible with your standard section choice.
For example, you
* could specify ["aws:pass"]
or you could specify ["aws:pass",
* “customActionName”]
. For information about compatibility, see the custom
* action descriptions under CustomAction.
The actions to take on a fragmented UDP packet if it doesn't match any of the
* stateless rules in the policy. Network Firewall only manages UDP packet
* fragments and silently drops packet fragments for other protocols. If you want
* non-matching fragmented UDP packets to be forwarded for stateful inspection,
* specify aws:forward_to_sfe
.
You must specify one of the
* standard actions: aws:pass
, aws:drop
, or
* aws:forward_to_sfe
. In addition, you can specify custom actions
* that are compatible with your standard section choice.
For example, you
* could specify ["aws:pass"]
or you could specify ["aws:pass",
* “customActionName”]
. For information about compatibility, see the custom
* action descriptions under CustomAction.
The actions to take on a fragmented UDP packet if it doesn't match any of the
* stateless rules in the policy. Network Firewall only manages UDP packet
* fragments and silently drops packet fragments for other protocols. If you want
* non-matching fragmented UDP packets to be forwarded for stateful inspection,
* specify aws:forward_to_sfe
.
You must specify one of the
* standard actions: aws:pass
, aws:drop
, or
* aws:forward_to_sfe
. In addition, you can specify custom actions
* that are compatible with your standard section choice.
For example, you
* could specify ["aws:pass"]
or you could specify ["aws:pass",
* “customActionName”]
. For information about compatibility, see the custom
* action descriptions under CustomAction.
The actions to take on a fragmented UDP packet if it doesn't match any of the
* stateless rules in the policy. Network Firewall only manages UDP packet
* fragments and silently drops packet fragments for other protocols. If you want
* non-matching fragmented UDP packets to be forwarded for stateful inspection,
* specify aws:forward_to_sfe
.
You must specify one of the
* standard actions: aws:pass
, aws:drop
, or
* aws:forward_to_sfe
. In addition, you can specify custom actions
* that are compatible with your standard section choice.
For example, you
* could specify ["aws:pass"]
or you could specify ["aws:pass",
* “customActionName”]
. For information about compatibility, see the custom
* action descriptions under CustomAction.
The actions to take on a fragmented UDP packet if it doesn't match any of the
* stateless rules in the policy. Network Firewall only manages UDP packet
* fragments and silently drops packet fragments for other protocols. If you want
* non-matching fragmented UDP packets to be forwarded for stateful inspection,
* specify aws:forward_to_sfe
.
You must specify one of the
* standard actions: aws:pass
, aws:drop
, or
* aws:forward_to_sfe
. In addition, you can specify custom actions
* that are compatible with your standard section choice.
For example, you
* could specify ["aws:pass"]
or you could specify ["aws:pass",
* “customActionName”]
. For information about compatibility, see the custom
* action descriptions under CustomAction.
The actions to take on a fragmented UDP packet if it doesn't match any of the
* stateless rules in the policy. Network Firewall only manages UDP packet
* fragments and silently drops packet fragments for other protocols. If you want
* non-matching fragmented UDP packets to be forwarded for stateful inspection,
* specify aws:forward_to_sfe
.
You must specify one of the
* standard actions: aws:pass
, aws:drop
, or
* aws:forward_to_sfe
. In addition, you can specify custom actions
* that are compatible with your standard section choice.
For example, you
* could specify ["aws:pass"]
or you could specify ["aws:pass",
* “customActionName”]
. For information about compatibility, see the custom
* action descriptions under CustomAction.
The actions to take on a fragmented UDP packet if it doesn't match any of the
* stateless rules in the policy. Network Firewall only manages UDP packet
* fragments and silently drops packet fragments for other protocols. If you want
* non-matching fragmented UDP packets to be forwarded for stateful inspection,
* specify aws:forward_to_sfe
.
You must specify one of the
* standard actions: aws:pass
, aws:drop
, or
* aws:forward_to_sfe
. In addition, you can specify custom actions
* that are compatible with your standard section choice.
For example, you
* could specify ["aws:pass"]
or you could specify ["aws:pass",
* “customActionName”]
. For information about compatibility, see the custom
* action descriptions under CustomAction.
The actions to take on a fragmented UDP packet if it doesn't match any of the
* stateless rules in the policy. Network Firewall only manages UDP packet
* fragments and silently drops packet fragments for other protocols. If you want
* non-matching fragmented UDP packets to be forwarded for stateful inspection,
* specify aws:forward_to_sfe
.
You must specify one of the
* standard actions: aws:pass
, aws:drop
, or
* aws:forward_to_sfe
. In addition, you can specify custom actions
* that are compatible with your standard section choice.
For example, you
* could specify ["aws:pass"]
or you could specify ["aws:pass",
* “customActionName”]
. For information about compatibility, see the custom
* action descriptions under CustomAction.
The custom action definitions that are available for use in the firewall
* policy's StatelessDefaultActions
setting. You name each custom
* action that you define, and then you can use it by name in your default actions
* specifications.
The custom action definitions that are available for use in the firewall
* policy's StatelessDefaultActions
setting. You name each custom
* action that you define, and then you can use it by name in your default actions
* specifications.
The custom action definitions that are available for use in the firewall
* policy's StatelessDefaultActions
setting. You name each custom
* action that you define, and then you can use it by name in your default actions
* specifications.
The custom action definitions that are available for use in the firewall
* policy's StatelessDefaultActions
setting. You name each custom
* action that you define, and then you can use it by name in your default actions
* specifications.
The custom action definitions that are available for use in the firewall
* policy's StatelessDefaultActions
setting. You name each custom
* action that you define, and then you can use it by name in your default actions
* specifications.
The custom action definitions that are available for use in the firewall
* policy's StatelessDefaultActions
setting. You name each custom
* action that you define, and then you can use it by name in your default actions
* specifications.
The custom action definitions that are available for use in the firewall
* policy's StatelessDefaultActions
setting. You name each custom
* action that you define, and then you can use it by name in your default actions
* specifications.
The custom action definitions that are available for use in the firewall
* policy's StatelessDefaultActions
setting. You name each custom
* action that you define, and then you can use it by name in your default actions
* specifications.
References to the stateful rule groups that are used in the policy. These * define the inspection criteria in stateful rules.
*/ inline const Aws::VectorReferences to the stateful rule groups that are used in the policy. These * define the inspection criteria in stateful rules.
*/ inline bool StatefulRuleGroupReferencesHasBeenSet() const { return m_statefulRuleGroupReferencesHasBeenSet; } /** *References to the stateful rule groups that are used in the policy. These * define the inspection criteria in stateful rules.
*/ inline void SetStatefulRuleGroupReferences(const Aws::VectorReferences to the stateful rule groups that are used in the policy. These * define the inspection criteria in stateful rules.
*/ inline void SetStatefulRuleGroupReferences(Aws::VectorReferences to the stateful rule groups that are used in the policy. These * define the inspection criteria in stateful rules.
*/ inline FirewallPolicy& WithStatefulRuleGroupReferences(const Aws::VectorReferences to the stateful rule groups that are used in the policy. These * define the inspection criteria in stateful rules.
*/ inline FirewallPolicy& WithStatefulRuleGroupReferences(Aws::VectorReferences to the stateful rule groups that are used in the policy. These * define the inspection criteria in stateful rules.
*/ inline FirewallPolicy& AddStatefulRuleGroupReferences(const StatefulRuleGroupReference& value) { m_statefulRuleGroupReferencesHasBeenSet = true; m_statefulRuleGroupReferences.push_back(value); return *this; } /** *References to the stateful rule groups that are used in the policy. These * define the inspection criteria in stateful rules.
*/ inline FirewallPolicy& AddStatefulRuleGroupReferences(StatefulRuleGroupReference&& value) { m_statefulRuleGroupReferencesHasBeenSet = true; m_statefulRuleGroupReferences.push_back(std::move(value)); return *this; } /** *The default actions to take on a packet that doesn't match any stateful * rules. The stateful default action is optional, and is only valid when using the * strict rule order.
Valid values of the stateful default action:
aws:drop_strict
aws:drop_established
aws:alert_strict
aws:alert_established
For more information, see Strict * evaluation order in the Network Firewall Developer Guide.
*/ inline const Aws::VectorThe default actions to take on a packet that doesn't match any stateful * rules. The stateful default action is optional, and is only valid when using the * strict rule order.
Valid values of the stateful default action:
aws:drop_strict
aws:drop_established
aws:alert_strict
aws:alert_established
For more information, see Strict * evaluation order in the Network Firewall Developer Guide.
*/ inline bool StatefulDefaultActionsHasBeenSet() const { return m_statefulDefaultActionsHasBeenSet; } /** *The default actions to take on a packet that doesn't match any stateful * rules. The stateful default action is optional, and is only valid when using the * strict rule order.
Valid values of the stateful default action:
aws:drop_strict
aws:drop_established
aws:alert_strict
aws:alert_established
For more information, see Strict * evaluation order in the Network Firewall Developer Guide.
*/ inline void SetStatefulDefaultActions(const Aws::VectorThe default actions to take on a packet that doesn't match any stateful * rules. The stateful default action is optional, and is only valid when using the * strict rule order.
Valid values of the stateful default action:
aws:drop_strict
aws:drop_established
aws:alert_strict
aws:alert_established
For more information, see Strict * evaluation order in the Network Firewall Developer Guide.
*/ inline void SetStatefulDefaultActions(Aws::VectorThe default actions to take on a packet that doesn't match any stateful * rules. The stateful default action is optional, and is only valid when using the * strict rule order.
Valid values of the stateful default action:
aws:drop_strict
aws:drop_established
aws:alert_strict
aws:alert_established
For more information, see Strict * evaluation order in the Network Firewall Developer Guide.
*/ inline FirewallPolicy& WithStatefulDefaultActions(const Aws::VectorThe default actions to take on a packet that doesn't match any stateful * rules. The stateful default action is optional, and is only valid when using the * strict rule order.
Valid values of the stateful default action:
aws:drop_strict
aws:drop_established
aws:alert_strict
aws:alert_established
For more information, see Strict * evaluation order in the Network Firewall Developer Guide.
*/ inline FirewallPolicy& WithStatefulDefaultActions(Aws::VectorThe default actions to take on a packet that doesn't match any stateful * rules. The stateful default action is optional, and is only valid when using the * strict rule order.
Valid values of the stateful default action:
aws:drop_strict
aws:drop_established
aws:alert_strict
aws:alert_established
For more information, see Strict * evaluation order in the Network Firewall Developer Guide.
*/ inline FirewallPolicy& AddStatefulDefaultActions(const Aws::String& value) { m_statefulDefaultActionsHasBeenSet = true; m_statefulDefaultActions.push_back(value); return *this; } /** *The default actions to take on a packet that doesn't match any stateful * rules. The stateful default action is optional, and is only valid when using the * strict rule order.
Valid values of the stateful default action:
aws:drop_strict
aws:drop_established
aws:alert_strict
aws:alert_established
For more information, see Strict * evaluation order in the Network Firewall Developer Guide.
*/ inline FirewallPolicy& AddStatefulDefaultActions(Aws::String&& value) { m_statefulDefaultActionsHasBeenSet = true; m_statefulDefaultActions.push_back(std::move(value)); return *this; } /** *The default actions to take on a packet that doesn't match any stateful * rules. The stateful default action is optional, and is only valid when using the * strict rule order.
Valid values of the stateful default action:
aws:drop_strict
aws:drop_established
aws:alert_strict
aws:alert_established
For more information, see Strict * evaluation order in the Network Firewall Developer Guide.
*/ inline FirewallPolicy& AddStatefulDefaultActions(const char* value) { m_statefulDefaultActionsHasBeenSet = true; m_statefulDefaultActions.push_back(value); return *this; } /** *Additional options governing how Network Firewall handles stateful rules. The * stateful rule groups that you use in your policy must have stateful rule options * settings that are compatible with these settings.
*/ inline const StatefulEngineOptions& GetStatefulEngineOptions() const{ return m_statefulEngineOptions; } /** *Additional options governing how Network Firewall handles stateful rules. The * stateful rule groups that you use in your policy must have stateful rule options * settings that are compatible with these settings.
*/ inline bool StatefulEngineOptionsHasBeenSet() const { return m_statefulEngineOptionsHasBeenSet; } /** *Additional options governing how Network Firewall handles stateful rules. The * stateful rule groups that you use in your policy must have stateful rule options * settings that are compatible with these settings.
*/ inline void SetStatefulEngineOptions(const StatefulEngineOptions& value) { m_statefulEngineOptionsHasBeenSet = true; m_statefulEngineOptions = value; } /** *Additional options governing how Network Firewall handles stateful rules. The * stateful rule groups that you use in your policy must have stateful rule options * settings that are compatible with these settings.
*/ inline void SetStatefulEngineOptions(StatefulEngineOptions&& value) { m_statefulEngineOptionsHasBeenSet = true; m_statefulEngineOptions = std::move(value); } /** *Additional options governing how Network Firewall handles stateful rules. The * stateful rule groups that you use in your policy must have stateful rule options * settings that are compatible with these settings.
*/ inline FirewallPolicy& WithStatefulEngineOptions(const StatefulEngineOptions& value) { SetStatefulEngineOptions(value); return *this;} /** *Additional options governing how Network Firewall handles stateful rules. The * stateful rule groups that you use in your policy must have stateful rule options * settings that are compatible with these settings.
*/ inline FirewallPolicy& WithStatefulEngineOptions(StatefulEngineOptions&& value) { SetStatefulEngineOptions(std::move(value)); return *this;} /** *The Amazon Resource Name (ARN) of the TLS inspection configuration.
*/ inline const Aws::String& GetTLSInspectionConfigurationArn() const{ return m_tLSInspectionConfigurationArn; } /** *The Amazon Resource Name (ARN) of the TLS inspection configuration.
*/ inline bool TLSInspectionConfigurationArnHasBeenSet() const { return m_tLSInspectionConfigurationArnHasBeenSet; } /** *The Amazon Resource Name (ARN) of the TLS inspection configuration.
*/ inline void SetTLSInspectionConfigurationArn(const Aws::String& value) { m_tLSInspectionConfigurationArnHasBeenSet = true; m_tLSInspectionConfigurationArn = value; } /** *The Amazon Resource Name (ARN) of the TLS inspection configuration.
*/ inline void SetTLSInspectionConfigurationArn(Aws::String&& value) { m_tLSInspectionConfigurationArnHasBeenSet = true; m_tLSInspectionConfigurationArn = std::move(value); } /** *The Amazon Resource Name (ARN) of the TLS inspection configuration.
*/ inline void SetTLSInspectionConfigurationArn(const char* value) { m_tLSInspectionConfigurationArnHasBeenSet = true; m_tLSInspectionConfigurationArn.assign(value); } /** *The Amazon Resource Name (ARN) of the TLS inspection configuration.
*/ inline FirewallPolicy& WithTLSInspectionConfigurationArn(const Aws::String& value) { SetTLSInspectionConfigurationArn(value); return *this;} /** *The Amazon Resource Name (ARN) of the TLS inspection configuration.
*/ inline FirewallPolicy& WithTLSInspectionConfigurationArn(Aws::String&& value) { SetTLSInspectionConfigurationArn(std::move(value)); return *this;} /** *The Amazon Resource Name (ARN) of the TLS inspection configuration.
*/ inline FirewallPolicy& WithTLSInspectionConfigurationArn(const char* value) { SetTLSInspectionConfigurationArn(value); return *this;} /** *Contains variables that you can use to override default Suricata settings in * your firewall policy.
*/ inline const PolicyVariables& GetPolicyVariables() const{ return m_policyVariables; } /** *Contains variables that you can use to override default Suricata settings in * your firewall policy.
*/ inline bool PolicyVariablesHasBeenSet() const { return m_policyVariablesHasBeenSet; } /** *Contains variables that you can use to override default Suricata settings in * your firewall policy.
*/ inline void SetPolicyVariables(const PolicyVariables& value) { m_policyVariablesHasBeenSet = true; m_policyVariables = value; } /** *Contains variables that you can use to override default Suricata settings in * your firewall policy.
*/ inline void SetPolicyVariables(PolicyVariables&& value) { m_policyVariablesHasBeenSet = true; m_policyVariables = std::move(value); } /** *Contains variables that you can use to override default Suricata settings in * your firewall policy.
*/ inline FirewallPolicy& WithPolicyVariables(const PolicyVariables& value) { SetPolicyVariables(value); return *this;} /** *Contains variables that you can use to override default Suricata settings in * your firewall policy.
*/ inline FirewallPolicy& WithPolicyVariables(PolicyVariables&& value) { SetPolicyVariables(std::move(value)); return *this;} private: Aws::Vector