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

A general abstraction of a signal. A node can be specified as an actuator, * attribute, branch, or sensor.

See Also:

AWS * API Reference

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

Information about a node specified as a branch.

A group of * signals that are defined in a hierarchical structure.

*/ inline const Branch& GetBranch() const{ return m_branch; } /** *

Information about a node specified as a branch.

A group of * signals that are defined in a hierarchical structure.

*/ inline bool BranchHasBeenSet() const { return m_branchHasBeenSet; } /** *

Information about a node specified as a branch.

A group of * signals that are defined in a hierarchical structure.

*/ inline void SetBranch(const Branch& value) { m_branchHasBeenSet = true; m_branch = value; } /** *

Information about a node specified as a branch.

A group of * signals that are defined in a hierarchical structure.

*/ inline void SetBranch(Branch&& value) { m_branchHasBeenSet = true; m_branch = std::move(value); } /** *

Information about a node specified as a branch.

A group of * signals that are defined in a hierarchical structure.

*/ inline Node& WithBranch(const Branch& value) { SetBranch(value); return *this;} /** *

Information about a node specified as a branch.

A group of * signals that are defined in a hierarchical structure.

*/ inline Node& WithBranch(Branch&& value) { SetBranch(std::move(value)); return *this;} inline const Sensor& GetSensor() const{ return m_sensor; } inline bool SensorHasBeenSet() const { return m_sensorHasBeenSet; } inline void SetSensor(const Sensor& value) { m_sensorHasBeenSet = true; m_sensor = value; } inline void SetSensor(Sensor&& value) { m_sensorHasBeenSet = true; m_sensor = std::move(value); } inline Node& WithSensor(const Sensor& value) { SetSensor(value); return *this;} inline Node& WithSensor(Sensor&& value) { SetSensor(std::move(value)); return *this;} /** *

Information about a node specified as an actuator.

An actuator * is a digital representation of a vehicle device.

*/ inline const Actuator& GetActuator() const{ return m_actuator; } /** *

Information about a node specified as an actuator.

An actuator * is a digital representation of a vehicle device.

*/ inline bool ActuatorHasBeenSet() const { return m_actuatorHasBeenSet; } /** *

Information about a node specified as an actuator.

An actuator * is a digital representation of a vehicle device.

*/ inline void SetActuator(const Actuator& value) { m_actuatorHasBeenSet = true; m_actuator = value; } /** *

Information about a node specified as an actuator.

An actuator * is a digital representation of a vehicle device.

*/ inline void SetActuator(Actuator&& value) { m_actuatorHasBeenSet = true; m_actuator = std::move(value); } /** *

Information about a node specified as an actuator.

An actuator * is a digital representation of a vehicle device.

*/ inline Node& WithActuator(const Actuator& value) { SetActuator(value); return *this;} /** *

Information about a node specified as an actuator.

An actuator * is a digital representation of a vehicle device.

*/ inline Node& WithActuator(Actuator&& value) { SetActuator(std::move(value)); return *this;} /** *

Information about a node specified as an attribute.

An * attribute represents static information about a vehicle.

*/ inline const Attribute& GetAttribute() const{ return m_attribute; } /** *

Information about a node specified as an attribute.

An * attribute represents static information about a vehicle.

*/ inline bool AttributeHasBeenSet() const { return m_attributeHasBeenSet; } /** *

Information about a node specified as an attribute.

An * attribute represents static information about a vehicle.

*/ inline void SetAttribute(const Attribute& value) { m_attributeHasBeenSet = true; m_attribute = value; } /** *

Information about a node specified as an attribute.

An * attribute represents static information about a vehicle.

*/ inline void SetAttribute(Attribute&& value) { m_attributeHasBeenSet = true; m_attribute = std::move(value); } /** *

Information about a node specified as an attribute.

An * attribute represents static information about a vehicle.

*/ inline Node& WithAttribute(const Attribute& value) { SetAttribute(value); return *this;} /** *

Information about a node specified as an attribute.

An * attribute represents static information about a vehicle.

*/ inline Node& WithAttribute(Attribute&& value) { SetAttribute(std::move(value)); return *this;} private: Branch m_branch; bool m_branchHasBeenSet = false; Sensor m_sensor; bool m_sensorHasBeenSet = false; Actuator m_actuator; bool m_actuatorHasBeenSet = false; Attribute m_attribute; bool m_attributeHasBeenSet = false; }; } // namespace Model } // namespace IoTFleetWise } // namespace Aws