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

Specifies the actions performed and the next state entered when a * condition evaluates to TRUE.

See Also:

AWS * API Reference

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

The name of the transition event.

*/ inline const Aws::String& GetEventName() const{ return m_eventName; } /** *

The name of the transition event.

*/ inline bool EventNameHasBeenSet() const { return m_eventNameHasBeenSet; } /** *

The name of the transition event.

*/ inline void SetEventName(const Aws::String& value) { m_eventNameHasBeenSet = true; m_eventName = value; } /** *

The name of the transition event.

*/ inline void SetEventName(Aws::String&& value) { m_eventNameHasBeenSet = true; m_eventName = std::move(value); } /** *

The name of the transition event.

*/ inline void SetEventName(const char* value) { m_eventNameHasBeenSet = true; m_eventName.assign(value); } /** *

The name of the transition event.

*/ inline TransitionEvent& WithEventName(const Aws::String& value) { SetEventName(value); return *this;} /** *

The name of the transition event.

*/ inline TransitionEvent& WithEventName(Aws::String&& value) { SetEventName(std::move(value)); return *this;} /** *

The name of the transition event.

*/ inline TransitionEvent& WithEventName(const char* value) { SetEventName(value); return *this;} /** *

Required. A Boolean expression that when TRUE causes the actions to be * performed and the nextState to be entered.

*/ inline const Aws::String& GetCondition() const{ return m_condition; } /** *

Required. A Boolean expression that when TRUE causes the actions to be * performed and the nextState to be entered.

*/ inline bool ConditionHasBeenSet() const { return m_conditionHasBeenSet; } /** *

Required. A Boolean expression that when TRUE causes the actions to be * performed and the nextState to be entered.

*/ inline void SetCondition(const Aws::String& value) { m_conditionHasBeenSet = true; m_condition = value; } /** *

Required. A Boolean expression that when TRUE causes the actions to be * performed and the nextState to be entered.

*/ inline void SetCondition(Aws::String&& value) { m_conditionHasBeenSet = true; m_condition = std::move(value); } /** *

Required. A Boolean expression that when TRUE causes the actions to be * performed and the nextState to be entered.

*/ inline void SetCondition(const char* value) { m_conditionHasBeenSet = true; m_condition.assign(value); } /** *

Required. A Boolean expression that when TRUE causes the actions to be * performed and the nextState to be entered.

*/ inline TransitionEvent& WithCondition(const Aws::String& value) { SetCondition(value); return *this;} /** *

Required. A Boolean expression that when TRUE causes the actions to be * performed and the nextState to be entered.

*/ inline TransitionEvent& WithCondition(Aws::String&& value) { SetCondition(std::move(value)); return *this;} /** *

Required. A Boolean expression that when TRUE causes the actions to be * performed and the nextState to be entered.

*/ inline TransitionEvent& WithCondition(const char* value) { SetCondition(value); return *this;} /** *

The actions to be performed.

*/ inline const Aws::Vector& GetActions() const{ return m_actions; } /** *

The actions to be performed.

*/ inline bool ActionsHasBeenSet() const { return m_actionsHasBeenSet; } /** *

The actions to be performed.

*/ inline void SetActions(const Aws::Vector& value) { m_actionsHasBeenSet = true; m_actions = value; } /** *

The actions to be performed.

*/ inline void SetActions(Aws::Vector&& value) { m_actionsHasBeenSet = true; m_actions = std::move(value); } /** *

The actions to be performed.

*/ inline TransitionEvent& WithActions(const Aws::Vector& value) { SetActions(value); return *this;} /** *

The actions to be performed.

*/ inline TransitionEvent& WithActions(Aws::Vector&& value) { SetActions(std::move(value)); return *this;} /** *

The actions to be performed.

*/ inline TransitionEvent& AddActions(const Action& value) { m_actionsHasBeenSet = true; m_actions.push_back(value); return *this; } /** *

The actions to be performed.

*/ inline TransitionEvent& AddActions(Action&& value) { m_actionsHasBeenSet = true; m_actions.push_back(std::move(value)); return *this; } /** *

The next state to enter.

*/ inline const Aws::String& GetNextState() const{ return m_nextState; } /** *

The next state to enter.

*/ inline bool NextStateHasBeenSet() const { return m_nextStateHasBeenSet; } /** *

The next state to enter.

*/ inline void SetNextState(const Aws::String& value) { m_nextStateHasBeenSet = true; m_nextState = value; } /** *

The next state to enter.

*/ inline void SetNextState(Aws::String&& value) { m_nextStateHasBeenSet = true; m_nextState = std::move(value); } /** *

The next state to enter.

*/ inline void SetNextState(const char* value) { m_nextStateHasBeenSet = true; m_nextState.assign(value); } /** *

The next state to enter.

*/ inline TransitionEvent& WithNextState(const Aws::String& value) { SetNextState(value); return *this;} /** *

The next state to enter.

*/ inline TransitionEvent& WithNextState(Aws::String&& value) { SetNextState(std::move(value)); return *this;} /** *

The next state to enter.

*/ inline TransitionEvent& WithNextState(const char* value) { SetNextState(value); return *this;} private: Aws::String m_eventName; bool m_eventNameHasBeenSet = false; Aws::String m_condition; bool m_conditionHasBeenSet = false; Aws::Vector m_actions; bool m_actionsHasBeenSet = false; Aws::String m_nextState; bool m_nextStateHasBeenSet = false; }; } // namespace Model } // namespace IoTEvents } // namespace Aws