/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

Defines the behavior of the firewall.

See Also:

AWS * API Reference

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

The stateful rule groups that are used in the firewall policy.

*/ inline const Aws::Vector& GetStatefulRuleGroupReferences() const{ return m_statefulRuleGroupReferences; } /** *

The stateful rule groups that are used in the firewall policy.

*/ inline bool StatefulRuleGroupReferencesHasBeenSet() const { return m_statefulRuleGroupReferencesHasBeenSet; } /** *

The stateful rule groups that are used in the firewall policy.

*/ inline void SetStatefulRuleGroupReferences(const Aws::Vector& value) { m_statefulRuleGroupReferencesHasBeenSet = true; m_statefulRuleGroupReferences = value; } /** *

The stateful rule groups that are used in the firewall policy.

*/ inline void SetStatefulRuleGroupReferences(Aws::Vector&& value) { m_statefulRuleGroupReferencesHasBeenSet = true; m_statefulRuleGroupReferences = std::move(value); } /** *

The stateful rule groups that are used in the firewall policy.

*/ inline FirewallPolicyDetails& WithStatefulRuleGroupReferences(const Aws::Vector& value) { SetStatefulRuleGroupReferences(value); return *this;} /** *

The stateful rule groups that are used in the firewall policy.

*/ inline FirewallPolicyDetails& WithStatefulRuleGroupReferences(Aws::Vector&& value) { SetStatefulRuleGroupReferences(std::move(value)); return *this;} /** *

The stateful rule groups that are used in the firewall policy.

*/ inline FirewallPolicyDetails& AddStatefulRuleGroupReferences(const FirewallPolicyStatefulRuleGroupReferencesDetails& value) { m_statefulRuleGroupReferencesHasBeenSet = true; m_statefulRuleGroupReferences.push_back(value); return *this; } /** *

The stateful rule groups that are used in the firewall policy.

*/ inline FirewallPolicyDetails& AddStatefulRuleGroupReferences(FirewallPolicyStatefulRuleGroupReferencesDetails&& value) { m_statefulRuleGroupReferencesHasBeenSet = true; m_statefulRuleGroupReferences.push_back(std::move(value)); return *this; } /** *

The custom action definitions that are available to use in the firewall * policy's StatelessDefaultActions setting.

*/ inline const Aws::Vector& GetStatelessCustomActions() const{ return m_statelessCustomActions; } /** *

The custom action definitions that are available to use in the firewall * policy's StatelessDefaultActions setting.

*/ inline bool StatelessCustomActionsHasBeenSet() const { return m_statelessCustomActionsHasBeenSet; } /** *

The custom action definitions that are available to use in the firewall * policy's StatelessDefaultActions setting.

*/ inline void SetStatelessCustomActions(const Aws::Vector& value) { m_statelessCustomActionsHasBeenSet = true; m_statelessCustomActions = value; } /** *

The custom action definitions that are available to use in the firewall * policy's StatelessDefaultActions setting.

*/ inline void SetStatelessCustomActions(Aws::Vector&& value) { m_statelessCustomActionsHasBeenSet = true; m_statelessCustomActions = std::move(value); } /** *

The custom action definitions that are available to use in the firewall * policy's StatelessDefaultActions setting.

*/ inline FirewallPolicyDetails& WithStatelessCustomActions(const Aws::Vector& value) { SetStatelessCustomActions(value); return *this;} /** *

The custom action definitions that are available to use in the firewall * policy's StatelessDefaultActions setting.

*/ inline FirewallPolicyDetails& WithStatelessCustomActions(Aws::Vector&& value) { SetStatelessCustomActions(std::move(value)); return *this;} /** *

The custom action definitions that are available to use in the firewall * policy's StatelessDefaultActions setting.

*/ inline FirewallPolicyDetails& AddStatelessCustomActions(const FirewallPolicyStatelessCustomActionsDetails& value) { m_statelessCustomActionsHasBeenSet = true; m_statelessCustomActions.push_back(value); return *this; } /** *

The custom action definitions that are available to use in the firewall * policy's StatelessDefaultActions setting.

*/ inline FirewallPolicyDetails& AddStatelessCustomActions(FirewallPolicyStatelessCustomActionsDetails&& value) { m_statelessCustomActionsHasBeenSet = true; m_statelessCustomActions.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.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline const Aws::Vector& GetStatelessDefaultActions() const{ return m_statelessDefaultActions; } /** *

The actions to take on a packet if it doesn't match any of the stateless * rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline bool StatelessDefaultActionsHasBeenSet() const { return m_statelessDefaultActionsHasBeenSet; } /** *

The actions to take on a packet if it doesn't match any of the stateless * rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline void SetStatelessDefaultActions(const Aws::Vector& value) { m_statelessDefaultActionsHasBeenSet = true; m_statelessDefaultActions = value; } /** *

The actions to take on a packet if it doesn't match any of the stateless * rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline void SetStatelessDefaultActions(Aws::Vector&& value) { m_statelessDefaultActionsHasBeenSet = true; m_statelessDefaultActions = std::move(value); } /** *

The actions to take on a packet if it doesn't match any of the stateless * rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline FirewallPolicyDetails& WithStatelessDefaultActions(const Aws::Vector& value) { SetStatelessDefaultActions(value); return *this;} /** *

The actions to take on a packet if it doesn't match any of the stateless * rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline FirewallPolicyDetails& WithStatelessDefaultActions(Aws::Vector&& value) { SetStatelessDefaultActions(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.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline FirewallPolicyDetails& AddStatelessDefaultActions(const Aws::String& value) { m_statelessDefaultActionsHasBeenSet = true; m_statelessDefaultActions.push_back(value); return *this; } /** *

The actions to take on a packet if it doesn't match any of the stateless * rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline FirewallPolicyDetails& AddStatelessDefaultActions(Aws::String&& value) { m_statelessDefaultActionsHasBeenSet = true; m_statelessDefaultActions.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.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline FirewallPolicyDetails& AddStatelessDefaultActions(const char* value) { m_statelessDefaultActionsHasBeenSet = true; m_statelessDefaultActions.push_back(value); return *this; } /** *

The actions to take on a fragmented UDP packet if it doesn't match any of the * stateless rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline const Aws::Vector& GetStatelessFragmentDefaultActions() const{ return m_statelessFragmentDefaultActions; } /** *

The actions to take on a fragmented UDP packet if it doesn't match any of the * stateless rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline bool StatelessFragmentDefaultActionsHasBeenSet() const { return m_statelessFragmentDefaultActionsHasBeenSet; } /** *

The actions to take on a fragmented UDP packet if it doesn't match any of the * stateless rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline void SetStatelessFragmentDefaultActions(const Aws::Vector& value) { m_statelessFragmentDefaultActionsHasBeenSet = true; m_statelessFragmentDefaultActions = value; } /** *

The actions to take on a fragmented UDP packet if it doesn't match any of the * stateless rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline void SetStatelessFragmentDefaultActions(Aws::Vector&& value) { m_statelessFragmentDefaultActionsHasBeenSet = true; m_statelessFragmentDefaultActions = std::move(value); } /** *

The actions to take on a fragmented UDP packet if it doesn't match any of the * stateless rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline FirewallPolicyDetails& WithStatelessFragmentDefaultActions(const Aws::Vector& value) { SetStatelessFragmentDefaultActions(value); return *this;} /** *

The actions to take on a fragmented UDP packet if it doesn't match any of the * stateless rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline FirewallPolicyDetails& WithStatelessFragmentDefaultActions(Aws::Vector&& value) { SetStatelessFragmentDefaultActions(std::move(value)); return *this;} /** *

The actions to take on a fragmented UDP packet if it doesn't match any of the * stateless rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline FirewallPolicyDetails& AddStatelessFragmentDefaultActions(const Aws::String& value) { m_statelessFragmentDefaultActionsHasBeenSet = true; m_statelessFragmentDefaultActions.push_back(value); return *this; } /** *

The actions to take on a fragmented UDP packet if it doesn't match any of the * stateless rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline FirewallPolicyDetails& AddStatelessFragmentDefaultActions(Aws::String&& value) { m_statelessFragmentDefaultActionsHasBeenSet = true; m_statelessFragmentDefaultActions.push_back(std::move(value)); return *this; } /** *

The actions to take on a fragmented UDP packet if it doesn't match any of the * stateless rules in the policy.

You must specify a standard action * (aws:pass, aws:drop, aws:forward_to_sfe), * and can optionally include a custom action from * StatelessCustomActions.

*/ inline FirewallPolicyDetails& AddStatelessFragmentDefaultActions(const char* value) { m_statelessFragmentDefaultActionsHasBeenSet = true; m_statelessFragmentDefaultActions.push_back(value); return *this; } /** *

The stateless rule groups that are used in the firewall policy.

*/ inline const Aws::Vector& GetStatelessRuleGroupReferences() const{ return m_statelessRuleGroupReferences; } /** *

The stateless rule groups that are used in the firewall policy.

*/ inline bool StatelessRuleGroupReferencesHasBeenSet() const { return m_statelessRuleGroupReferencesHasBeenSet; } /** *

The stateless rule groups that are used in the firewall policy.

*/ inline void SetStatelessRuleGroupReferences(const Aws::Vector& value) { m_statelessRuleGroupReferencesHasBeenSet = true; m_statelessRuleGroupReferences = value; } /** *

The stateless rule groups that are used in the firewall policy.

*/ inline void SetStatelessRuleGroupReferences(Aws::Vector&& value) { m_statelessRuleGroupReferencesHasBeenSet = true; m_statelessRuleGroupReferences = std::move(value); } /** *

The stateless rule groups that are used in the firewall policy.

*/ inline FirewallPolicyDetails& WithStatelessRuleGroupReferences(const Aws::Vector& value) { SetStatelessRuleGroupReferences(value); return *this;} /** *

The stateless rule groups that are used in the firewall policy.

*/ inline FirewallPolicyDetails& WithStatelessRuleGroupReferences(Aws::Vector&& value) { SetStatelessRuleGroupReferences(std::move(value)); return *this;} /** *

The stateless rule groups that are used in the firewall policy.

*/ inline FirewallPolicyDetails& AddStatelessRuleGroupReferences(const FirewallPolicyStatelessRuleGroupReferencesDetails& value) { m_statelessRuleGroupReferencesHasBeenSet = true; m_statelessRuleGroupReferences.push_back(value); return *this; } /** *

The stateless rule groups that are used in the firewall policy.

*/ inline FirewallPolicyDetails& AddStatelessRuleGroupReferences(FirewallPolicyStatelessRuleGroupReferencesDetails&& value) { m_statelessRuleGroupReferencesHasBeenSet = true; m_statelessRuleGroupReferences.push_back(std::move(value)); return *this; } private: Aws::Vector m_statefulRuleGroupReferences; bool m_statefulRuleGroupReferencesHasBeenSet = false; Aws::Vector m_statelessCustomActions; bool m_statelessCustomActionsHasBeenSet = false; Aws::Vector m_statelessDefaultActions; bool m_statelessDefaultActionsHasBeenSet = false; Aws::Vector m_statelessFragmentDefaultActions; bool m_statelessFragmentDefaultActionsHasBeenSet = false; Aws::Vector m_statelessRuleGroupReferences; bool m_statelessRuleGroupReferencesHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws