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

A single match condition for a Filter.

See Also:

AWS API * Reference

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

A single action condition. This is the action setting that a log record must * contain in order to meet the condition.

*/ inline const ActionCondition& GetActionCondition() const{ return m_actionCondition; } /** *

A single action condition. This is the action setting that a log record must * contain in order to meet the condition.

*/ inline bool ActionConditionHasBeenSet() const { return m_actionConditionHasBeenSet; } /** *

A single action condition. This is the action setting that a log record must * contain in order to meet the condition.

*/ inline void SetActionCondition(const ActionCondition& value) { m_actionConditionHasBeenSet = true; m_actionCondition = value; } /** *

A single action condition. This is the action setting that a log record must * contain in order to meet the condition.

*/ inline void SetActionCondition(ActionCondition&& value) { m_actionConditionHasBeenSet = true; m_actionCondition = std::move(value); } /** *

A single action condition. This is the action setting that a log record must * contain in order to meet the condition.

*/ inline Condition& WithActionCondition(const ActionCondition& value) { SetActionCondition(value); return *this;} /** *

A single action condition. This is the action setting that a log record must * contain in order to meet the condition.

*/ inline Condition& WithActionCondition(ActionCondition&& value) { SetActionCondition(std::move(value)); return *this;} /** *

A single label name condition. This is the fully qualified label name that a * log record must contain in order to meet the condition. Fully qualified labels * have a prefix, optional namespaces, and label name. The prefix identifies the * rule group or web ACL context of the rule that added the label.

*/ inline const LabelNameCondition& GetLabelNameCondition() const{ return m_labelNameCondition; } /** *

A single label name condition. This is the fully qualified label name that a * log record must contain in order to meet the condition. Fully qualified labels * have a prefix, optional namespaces, and label name. The prefix identifies the * rule group or web ACL context of the rule that added the label.

*/ inline bool LabelNameConditionHasBeenSet() const { return m_labelNameConditionHasBeenSet; } /** *

A single label name condition. This is the fully qualified label name that a * log record must contain in order to meet the condition. Fully qualified labels * have a prefix, optional namespaces, and label name. The prefix identifies the * rule group or web ACL context of the rule that added the label.

*/ inline void SetLabelNameCondition(const LabelNameCondition& value) { m_labelNameConditionHasBeenSet = true; m_labelNameCondition = value; } /** *

A single label name condition. This is the fully qualified label name that a * log record must contain in order to meet the condition. Fully qualified labels * have a prefix, optional namespaces, and label name. The prefix identifies the * rule group or web ACL context of the rule that added the label.

*/ inline void SetLabelNameCondition(LabelNameCondition&& value) { m_labelNameConditionHasBeenSet = true; m_labelNameCondition = std::move(value); } /** *

A single label name condition. This is the fully qualified label name that a * log record must contain in order to meet the condition. Fully qualified labels * have a prefix, optional namespaces, and label name. The prefix identifies the * rule group or web ACL context of the rule that added the label.

*/ inline Condition& WithLabelNameCondition(const LabelNameCondition& value) { SetLabelNameCondition(value); return *this;} /** *

A single label name condition. This is the fully qualified label name that a * log record must contain in order to meet the condition. Fully qualified labels * have a prefix, optional namespaces, and label name. The prefix identifies the * rule group or web ACL context of the rule that added the label.

*/ inline Condition& WithLabelNameCondition(LabelNameCondition&& value) { SetLabelNameCondition(std::move(value)); return *this;} private: ActionCondition m_actionCondition; bool m_actionConditionHasBeenSet = false; LabelNameCondition m_labelNameCondition; bool m_labelNameConditionHasBeenSet = false; }; } // namespace Model } // namespace WAFV2 } // namespace Aws