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

Represents a node and its specifications in an in-vehicle communication * network. All signal decoders must be associated with a network node.

To * return this information about all the network interfaces specified in a decoder * manifest, use the API operation.

See Also:

AWS * API Reference

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

The ID of the network interface.

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

The ID of the network interface.

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

The ID of the network interface.

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

The ID of the network interface.

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

The ID of the network interface.

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

The ID of the network interface.

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

The ID of the network interface.

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

The ID of the network interface.

*/ inline NetworkInterface& WithInterfaceId(const char* value) { SetInterfaceId(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 NetworkInterfaceType& 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 NetworkInterfaceType& 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(NetworkInterfaceType&& 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 NetworkInterface& WithType(const NetworkInterfaceType& 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 NetworkInterface& WithType(NetworkInterfaceType&& value) { SetType(std::move(value)); return *this;} /** *

Information about a network interface specified by the Controller Area * Network (CAN) protocol.

*/ inline const CanInterface& GetCanInterface() const{ return m_canInterface; } /** *

Information about a network interface specified by the Controller Area * Network (CAN) protocol.

*/ inline bool CanInterfaceHasBeenSet() const { return m_canInterfaceHasBeenSet; } /** *

Information about a network interface specified by the Controller Area * Network (CAN) protocol.

*/ inline void SetCanInterface(const CanInterface& value) { m_canInterfaceHasBeenSet = true; m_canInterface = value; } /** *

Information about a network interface specified by the Controller Area * Network (CAN) protocol.

*/ inline void SetCanInterface(CanInterface&& value) { m_canInterfaceHasBeenSet = true; m_canInterface = std::move(value); } /** *

Information about a network interface specified by the Controller Area * Network (CAN) protocol.

*/ inline NetworkInterface& WithCanInterface(const CanInterface& value) { SetCanInterface(value); return *this;} /** *

Information about a network interface specified by the Controller Area * Network (CAN) protocol.

*/ inline NetworkInterface& WithCanInterface(CanInterface&& value) { SetCanInterface(std::move(value)); return *this;} /** *

Information about a network interface specified by the On-board diagnostic * (OBD) II protocol.

*/ inline const ObdInterface& GetObdInterface() const{ return m_obdInterface; } /** *

Information about a network interface specified by the On-board diagnostic * (OBD) II protocol.

*/ inline bool ObdInterfaceHasBeenSet() const { return m_obdInterfaceHasBeenSet; } /** *

Information about a network interface specified by the On-board diagnostic * (OBD) II protocol.

*/ inline void SetObdInterface(const ObdInterface& value) { m_obdInterfaceHasBeenSet = true; m_obdInterface = value; } /** *

Information about a network interface specified by the On-board diagnostic * (OBD) II protocol.

*/ inline void SetObdInterface(ObdInterface&& value) { m_obdInterfaceHasBeenSet = true; m_obdInterface = std::move(value); } /** *

Information about a network interface specified by the On-board diagnostic * (OBD) II protocol.

*/ inline NetworkInterface& WithObdInterface(const ObdInterface& value) { SetObdInterface(value); return *this;} /** *

Information about a network interface specified by the On-board diagnostic * (OBD) II protocol.

*/ inline NetworkInterface& WithObdInterface(ObdInterface&& value) { SetObdInterface(std::move(value)); return *this;} private: Aws::String m_interfaceId; bool m_interfaceIdHasBeenSet = false; NetworkInterfaceType m_type; bool m_typeHasBeenSet = false; CanInterface m_canInterface; bool m_canInterfaceHasBeenSet = false; ObdInterface m_obdInterface; bool m_obdInterfaceHasBeenSet = false; }; } // namespace Model } // namespace IoTFleetWise } // namespace Aws