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

MetaData for Sidewalk device.

See Also:

AWS * API Reference

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

The RSSI value.

*/ inline int GetRssi() const{ return m_rssi; } /** *

The RSSI value.

*/ inline bool RssiHasBeenSet() const { return m_rssiHasBeenSet; } /** *

The RSSI value.

*/ inline void SetRssi(int value) { m_rssiHasBeenSet = true; m_rssi = value; } /** *

The RSSI value.

*/ inline SidewalkDeviceMetadata& WithRssi(int value) { SetRssi(value); return *this;} /** *

Sidewalk device battery level.

*/ inline const BatteryLevel& GetBatteryLevel() const{ return m_batteryLevel; } /** *

Sidewalk device battery level.

*/ inline bool BatteryLevelHasBeenSet() const { return m_batteryLevelHasBeenSet; } /** *

Sidewalk device battery level.

*/ inline void SetBatteryLevel(const BatteryLevel& value) { m_batteryLevelHasBeenSet = true; m_batteryLevel = value; } /** *

Sidewalk device battery level.

*/ inline void SetBatteryLevel(BatteryLevel&& value) { m_batteryLevelHasBeenSet = true; m_batteryLevel = std::move(value); } /** *

Sidewalk device battery level.

*/ inline SidewalkDeviceMetadata& WithBatteryLevel(const BatteryLevel& value) { SetBatteryLevel(value); return *this;} /** *

Sidewalk device battery level.

*/ inline SidewalkDeviceMetadata& WithBatteryLevel(BatteryLevel&& value) { SetBatteryLevel(std::move(value)); return *this;} /** *

Sidewalk device status notification.

*/ inline const Event& GetEvent() const{ return m_event; } /** *

Sidewalk device status notification.

*/ inline bool EventHasBeenSet() const { return m_eventHasBeenSet; } /** *

Sidewalk device status notification.

*/ inline void SetEvent(const Event& value) { m_eventHasBeenSet = true; m_event = value; } /** *

Sidewalk device status notification.

*/ inline void SetEvent(Event&& value) { m_eventHasBeenSet = true; m_event = std::move(value); } /** *

Sidewalk device status notification.

*/ inline SidewalkDeviceMetadata& WithEvent(const Event& value) { SetEvent(value); return *this;} /** *

Sidewalk device status notification.

*/ inline SidewalkDeviceMetadata& WithEvent(Event&& value) { SetEvent(std::move(value)); return *this;} /** *

Device state defines the device status of sidewalk device.

*/ inline const DeviceState& GetDeviceState() const{ return m_deviceState; } /** *

Device state defines the device status of sidewalk device.

*/ inline bool DeviceStateHasBeenSet() const { return m_deviceStateHasBeenSet; } /** *

Device state defines the device status of sidewalk device.

*/ inline void SetDeviceState(const DeviceState& value) { m_deviceStateHasBeenSet = true; m_deviceState = value; } /** *

Device state defines the device status of sidewalk device.

*/ inline void SetDeviceState(DeviceState&& value) { m_deviceStateHasBeenSet = true; m_deviceState = std::move(value); } /** *

Device state defines the device status of sidewalk device.

*/ inline SidewalkDeviceMetadata& WithDeviceState(const DeviceState& value) { SetDeviceState(value); return *this;} /** *

Device state defines the device status of sidewalk device.

*/ inline SidewalkDeviceMetadata& WithDeviceState(DeviceState&& value) { SetDeviceState(std::move(value)); return *this;} private: int m_rssi; bool m_rssiHasBeenSet = false; BatteryLevel m_batteryLevel; bool m_batteryLevelHasBeenSet = false; Event m_event; bool m_eventHasBeenSet = false; DeviceState m_deviceState; bool m_deviceStateHasBeenSet = false; }; } // namespace Model } // namespace IoTWireless } // namespace Aws