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

An optional, non-standard action to use for stateless packet handling. You * can define this in addition to the standard action that you must specify.

*

You define and name the custom actions that you want to be able to use, and * then you reference them by name in your actions settings.

You can use * custom actions in the following places:

  • In a rule group's * StatelessRulesAndCustomActions specification. The custom actions are * available for use by name inside the StatelessRulesAndCustomActions * where you define them. You can use them for your stateless rule actions to * specify what to do with a packet that matches the rule's match attributes.

    *
  • In a FirewallPolicy specification, in * StatelessCustomActions. The custom actions are available for use * inside the policy where you define them. You can use them for the policy's * default stateless actions settings to specify what to do with packets that don't * match any of the policy's stateless rules.

See Also:

* AWS * API Reference

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

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

*/ inline const Aws::String& GetActionName() const{ return m_actionName; } /** *

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

*/ inline bool ActionNameHasBeenSet() const { return m_actionNameHasBeenSet; } /** *

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

*/ inline void SetActionName(const Aws::String& value) { m_actionNameHasBeenSet = true; m_actionName = value; } /** *

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

*/ inline void SetActionName(Aws::String&& value) { m_actionNameHasBeenSet = true; m_actionName = std::move(value); } /** *

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

*/ inline void SetActionName(const char* value) { m_actionNameHasBeenSet = true; m_actionName.assign(value); } /** *

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

*/ inline CustomAction& WithActionName(const Aws::String& value) { SetActionName(value); return *this;} /** *

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

*/ inline CustomAction& WithActionName(Aws::String&& value) { SetActionName(std::move(value)); return *this;} /** *

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

*/ inline CustomAction& WithActionName(const char* value) { SetActionName(value); return *this;} /** *

The custom action associated with the action name.

*/ inline const ActionDefinition& GetActionDefinition() const{ return m_actionDefinition; } /** *

The custom action associated with the action name.

*/ inline bool ActionDefinitionHasBeenSet() const { return m_actionDefinitionHasBeenSet; } /** *

The custom action associated with the action name.

*/ inline void SetActionDefinition(const ActionDefinition& value) { m_actionDefinitionHasBeenSet = true; m_actionDefinition = value; } /** *

The custom action associated with the action name.

*/ inline void SetActionDefinition(ActionDefinition&& value) { m_actionDefinitionHasBeenSet = true; m_actionDefinition = std::move(value); } /** *

The custom action associated with the action name.

*/ inline CustomAction& WithActionDefinition(const ActionDefinition& value) { SetActionDefinition(value); return *this;} /** *

The custom action associated with the action name.

*/ inline CustomAction& WithActionDefinition(ActionDefinition&& value) { SetActionDefinition(std::move(value)); return *this;} private: Aws::String m_actionName; bool m_actionNameHasBeenSet = false; ActionDefinition m_actionDefinition; bool m_actionDefinitionHasBeenSet = false; }; } // namespace Model } // namespace NetworkFirewall } // namespace Aws