/** * 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 { /** *

Information about a signal decoder.

See Also:

AWS * API Reference

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

The fully qualified name of a signal decoder as defined in a vehicle * model.

*/ inline const Aws::String& GetFullyQualifiedName() const{ return m_fullyQualifiedName; } /** *

The fully qualified name of a signal decoder as defined in a vehicle * model.

*/ inline bool FullyQualifiedNameHasBeenSet() const { return m_fullyQualifiedNameHasBeenSet; } /** *

The fully qualified name of a signal decoder as defined in a vehicle * model.

*/ inline void SetFullyQualifiedName(const Aws::String& value) { m_fullyQualifiedNameHasBeenSet = true; m_fullyQualifiedName = value; } /** *

The fully qualified name of a signal decoder as defined in a vehicle * model.

*/ inline void SetFullyQualifiedName(Aws::String&& value) { m_fullyQualifiedNameHasBeenSet = true; m_fullyQualifiedName = std::move(value); } /** *

The fully qualified name of a signal decoder as defined in a vehicle * model.

*/ inline void SetFullyQualifiedName(const char* value) { m_fullyQualifiedNameHasBeenSet = true; m_fullyQualifiedName.assign(value); } /** *

The fully qualified name of a signal decoder as defined in a vehicle * model.

*/ inline SignalDecoder& WithFullyQualifiedName(const Aws::String& value) { SetFullyQualifiedName(value); return *this;} /** *

The fully qualified name of a signal decoder as defined in a vehicle * model.

*/ inline SignalDecoder& WithFullyQualifiedName(Aws::String&& value) { SetFullyQualifiedName(std::move(value)); return *this;} /** *

The fully qualified name of a signal decoder as defined in a vehicle * model.

*/ inline SignalDecoder& WithFullyQualifiedName(const char* value) { SetFullyQualifiedName(value); return *this;} /** *

The network protocol for the vehicle. For example, CAN_SIGNAL * specifies a protocol that defines how data is communicated between electronic * control units (ECUs). OBD_SIGNAL specifies a protocol that defines * how self-diagnostic data is communicated between ECUs.

*/ inline const SignalDecoderType& GetType() const{ return m_type; } /** *

The network protocol for the vehicle. For example, CAN_SIGNAL * specifies a protocol that defines how data is communicated between electronic * control units (ECUs). OBD_SIGNAL specifies a protocol that defines * how self-diagnostic data is communicated between ECUs.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The network protocol for the vehicle. For example, CAN_SIGNAL * specifies a protocol that defines how data is communicated between electronic * control units (ECUs). OBD_SIGNAL specifies a protocol that defines * how self-diagnostic data is communicated between ECUs.

*/ inline void SetType(const SignalDecoderType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The network protocol for the vehicle. For example, CAN_SIGNAL * specifies a protocol that defines how data is communicated between electronic * control units (ECUs). OBD_SIGNAL specifies a protocol that defines * how self-diagnostic data is communicated between ECUs.

*/ inline void SetType(SignalDecoderType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The network protocol for the vehicle. For example, CAN_SIGNAL * specifies a protocol that defines how data is communicated between electronic * control units (ECUs). OBD_SIGNAL specifies a protocol that defines * how self-diagnostic data is communicated between ECUs.

*/ inline SignalDecoder& WithType(const SignalDecoderType& value) { SetType(value); return *this;} /** *

The network protocol for the vehicle. For example, CAN_SIGNAL * specifies a protocol that defines how data is communicated between electronic * control units (ECUs). OBD_SIGNAL specifies a protocol that defines * how self-diagnostic data is communicated between ECUs.

*/ inline SignalDecoder& WithType(SignalDecoderType&& value) { SetType(std::move(value)); return *this;} /** *

The ID of a network interface that specifies what network protocol a vehicle * follows.

*/ inline const Aws::String& GetInterfaceId() const{ return m_interfaceId; } /** *

The ID of a network interface that specifies what network protocol a vehicle * follows.

*/ inline bool InterfaceIdHasBeenSet() const { return m_interfaceIdHasBeenSet; } /** *

The ID of a network interface that specifies what network protocol a vehicle * follows.

*/ inline void SetInterfaceId(const Aws::String& value) { m_interfaceIdHasBeenSet = true; m_interfaceId = value; } /** *

The ID of a network interface that specifies what network protocol a vehicle * follows.

*/ inline void SetInterfaceId(Aws::String&& value) { m_interfaceIdHasBeenSet = true; m_interfaceId = std::move(value); } /** *

The ID of a network interface that specifies what network protocol a vehicle * follows.

*/ inline void SetInterfaceId(const char* value) { m_interfaceIdHasBeenSet = true; m_interfaceId.assign(value); } /** *

The ID of a network interface that specifies what network protocol a vehicle * follows.

*/ inline SignalDecoder& WithInterfaceId(const Aws::String& value) { SetInterfaceId(value); return *this;} /** *

The ID of a network interface that specifies what network protocol a vehicle * follows.

*/ inline SignalDecoder& WithInterfaceId(Aws::String&& value) { SetInterfaceId(std::move(value)); return *this;} /** *

The ID of a network interface that specifies what network protocol a vehicle * follows.

*/ inline SignalDecoder& WithInterfaceId(const char* value) { SetInterfaceId(value); return *this;} /** *

Information about signal decoder using the Controller Area Network (CAN) * protocol.

*/ inline const CanSignal& GetCanSignal() const{ return m_canSignal; } /** *

Information about signal decoder using the Controller Area Network (CAN) * protocol.

*/ inline bool CanSignalHasBeenSet() const { return m_canSignalHasBeenSet; } /** *

Information about signal decoder using the Controller Area Network (CAN) * protocol.

*/ inline void SetCanSignal(const CanSignal& value) { m_canSignalHasBeenSet = true; m_canSignal = value; } /** *

Information about signal decoder using the Controller Area Network (CAN) * protocol.

*/ inline void SetCanSignal(CanSignal&& value) { m_canSignalHasBeenSet = true; m_canSignal = std::move(value); } /** *

Information about signal decoder using the Controller Area Network (CAN) * protocol.

*/ inline SignalDecoder& WithCanSignal(const CanSignal& value) { SetCanSignal(value); return *this;} /** *

Information about signal decoder using the Controller Area Network (CAN) * protocol.

*/ inline SignalDecoder& WithCanSignal(CanSignal&& value) { SetCanSignal(std::move(value)); return *this;} /** *

Information about signal decoder using the On-board diagnostic (OBD) II * protocol.

*/ inline const ObdSignal& GetObdSignal() const{ return m_obdSignal; } /** *

Information about signal decoder using the On-board diagnostic (OBD) II * protocol.

*/ inline bool ObdSignalHasBeenSet() const { return m_obdSignalHasBeenSet; } /** *

Information about signal decoder using the On-board diagnostic (OBD) II * protocol.

*/ inline void SetObdSignal(const ObdSignal& value) { m_obdSignalHasBeenSet = true; m_obdSignal = value; } /** *

Information about signal decoder using the On-board diagnostic (OBD) II * protocol.

*/ inline void SetObdSignal(ObdSignal&& value) { m_obdSignalHasBeenSet = true; m_obdSignal = std::move(value); } /** *

Information about signal decoder using the On-board diagnostic (OBD) II * protocol.

*/ inline SignalDecoder& WithObdSignal(const ObdSignal& value) { SetObdSignal(value); return *this;} /** *

Information about signal decoder using the On-board diagnostic (OBD) II * protocol.

*/ inline SignalDecoder& WithObdSignal(ObdSignal&& value) { SetObdSignal(std::move(value)); return *this;} private: Aws::String m_fullyQualifiedName; bool m_fullyQualifiedNameHasBeenSet = false; SignalDecoderType m_type; bool m_typeHasBeenSet = false; Aws::String m_interfaceId; bool m_interfaceIdHasBeenSet = false; CanSignal m_canSignal; bool m_canSignalHasBeenSet = false; ObdSignal m_obdSignal; bool m_obdSignalHasBeenSet = false; }; } // namespace Model } // namespace IoTFleetWise } // namespace Aws