/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Pinpoint { namespace Model { /** *

Specifies the conditions to evaluate for an activity in a journey, and how to * evaluate those conditions.

See Also:

AWS * API Reference

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

The conditions to evaluate for the activity.

*/ inline const Aws::Vector& GetConditions() const{ return m_conditions; } /** *

The conditions to evaluate for the activity.

*/ inline bool ConditionsHasBeenSet() const { return m_conditionsHasBeenSet; } /** *

The conditions to evaluate for the activity.

*/ inline void SetConditions(const Aws::Vector& value) { m_conditionsHasBeenSet = true; m_conditions = value; } /** *

The conditions to evaluate for the activity.

*/ inline void SetConditions(Aws::Vector&& value) { m_conditionsHasBeenSet = true; m_conditions = std::move(value); } /** *

The conditions to evaluate for the activity.

*/ inline Condition& WithConditions(const Aws::Vector& value) { SetConditions(value); return *this;} /** *

The conditions to evaluate for the activity.

*/ inline Condition& WithConditions(Aws::Vector&& value) { SetConditions(std::move(value)); return *this;} /** *

The conditions to evaluate for the activity.

*/ inline Condition& AddConditions(const SimpleCondition& value) { m_conditionsHasBeenSet = true; m_conditions.push_back(value); return *this; } /** *

The conditions to evaluate for the activity.

*/ inline Condition& AddConditions(SimpleCondition&& value) { m_conditionsHasBeenSet = true; m_conditions.push_back(std::move(value)); return *this; } /** *

Specifies how to handle multiple conditions for the activity. For example, if * you specify two conditions for an activity, whether both or only one of the * conditions must be met for the activity to be performed.

*/ inline const Operator& GetOperator() const{ return m_operator; } /** *

Specifies how to handle multiple conditions for the activity. For example, if * you specify two conditions for an activity, whether both or only one of the * conditions must be met for the activity to be performed.

*/ inline bool OperatorHasBeenSet() const { return m_operatorHasBeenSet; } /** *

Specifies how to handle multiple conditions for the activity. For example, if * you specify two conditions for an activity, whether both or only one of the * conditions must be met for the activity to be performed.

*/ inline void SetOperator(const Operator& value) { m_operatorHasBeenSet = true; m_operator = value; } /** *

Specifies how to handle multiple conditions for the activity. For example, if * you specify two conditions for an activity, whether both or only one of the * conditions must be met for the activity to be performed.

*/ inline void SetOperator(Operator&& value) { m_operatorHasBeenSet = true; m_operator = std::move(value); } /** *

Specifies how to handle multiple conditions for the activity. For example, if * you specify two conditions for an activity, whether both or only one of the * conditions must be met for the activity to be performed.

*/ inline Condition& WithOperator(const Operator& value) { SetOperator(value); return *this;} /** *

Specifies how to handle multiple conditions for the activity. For example, if * you specify two conditions for an activity, whether both or only one of the * conditions must be met for the activity to be performed.

*/ inline Condition& WithOperator(Operator&& value) { SetOperator(std::move(value)); return *this;} private: Aws::Vector m_conditions; bool m_conditionsHasBeenSet = false; Operator m_operator; bool m_operatorHasBeenSet = false; }; } // namespace Model } // namespace Pinpoint } // namespace Aws