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

A device.

See Also:

AWS API * Reference

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

The device's maker.

*/ inline const DeviceBrand& GetBrand() const{ return m_brand; } /** *

The device's maker.

*/ inline bool BrandHasBeenSet() const { return m_brandHasBeenSet; } /** *

The device's maker.

*/ inline void SetBrand(const DeviceBrand& value) { m_brandHasBeenSet = true; m_brand = value; } /** *

The device's maker.

*/ inline void SetBrand(DeviceBrand&& value) { m_brandHasBeenSet = true; m_brand = std::move(value); } /** *

The device's maker.

*/ inline Device& WithBrand(const DeviceBrand& value) { SetBrand(value); return *this;} /** *

The device's maker.

*/ inline Device& WithBrand(DeviceBrand&& value) { SetBrand(std::move(value)); return *this;} /** *

When the device was created.

*/ inline const Aws::Utils::DateTime& GetCreatedTime() const{ return m_createdTime; } /** *

When the device was created.

*/ inline bool CreatedTimeHasBeenSet() const { return m_createdTimeHasBeenSet; } /** *

When the device was created.

*/ inline void SetCreatedTime(const Aws::Utils::DateTime& value) { m_createdTimeHasBeenSet = true; m_createdTime = value; } /** *

When the device was created.

*/ inline void SetCreatedTime(Aws::Utils::DateTime&& value) { m_createdTimeHasBeenSet = true; m_createdTime = std::move(value); } /** *

When the device was created.

*/ inline Device& WithCreatedTime(const Aws::Utils::DateTime& value) { SetCreatedTime(value); return *this;} /** *

When the device was created.

*/ inline Device& WithCreatedTime(Aws::Utils::DateTime&& value) { SetCreatedTime(std::move(value)); return *this;} /** *

A device's current software.

*/ inline const Aws::String& GetCurrentSoftware() const{ return m_currentSoftware; } /** *

A device's current software.

*/ inline bool CurrentSoftwareHasBeenSet() const { return m_currentSoftwareHasBeenSet; } /** *

A device's current software.

*/ inline void SetCurrentSoftware(const Aws::String& value) { m_currentSoftwareHasBeenSet = true; m_currentSoftware = value; } /** *

A device's current software.

*/ inline void SetCurrentSoftware(Aws::String&& value) { m_currentSoftwareHasBeenSet = true; m_currentSoftware = std::move(value); } /** *

A device's current software.

*/ inline void SetCurrentSoftware(const char* value) { m_currentSoftwareHasBeenSet = true; m_currentSoftware.assign(value); } /** *

A device's current software.

*/ inline Device& WithCurrentSoftware(const Aws::String& value) { SetCurrentSoftware(value); return *this;} /** *

A device's current software.

*/ inline Device& WithCurrentSoftware(Aws::String&& value) { SetCurrentSoftware(std::move(value)); return *this;} /** *

A device's current software.

*/ inline Device& WithCurrentSoftware(const char* value) { SetCurrentSoftware(value); return *this;} /** *

A description for the device.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description for the device.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description for the device.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description for the device.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description for the device.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description for the device.

*/ inline Device& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description for the device.

*/ inline Device& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description for the device.

*/ inline Device& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

A device's aggregated status. Including the device's connection status, * provisioning status, and lease status.

*/ inline const DeviceAggregatedStatus& GetDeviceAggregatedStatus() const{ return m_deviceAggregatedStatus; } /** *

A device's aggregated status. Including the device's connection status, * provisioning status, and lease status.

*/ inline bool DeviceAggregatedStatusHasBeenSet() const { return m_deviceAggregatedStatusHasBeenSet; } /** *

A device's aggregated status. Including the device's connection status, * provisioning status, and lease status.

*/ inline void SetDeviceAggregatedStatus(const DeviceAggregatedStatus& value) { m_deviceAggregatedStatusHasBeenSet = true; m_deviceAggregatedStatus = value; } /** *

A device's aggregated status. Including the device's connection status, * provisioning status, and lease status.

*/ inline void SetDeviceAggregatedStatus(DeviceAggregatedStatus&& value) { m_deviceAggregatedStatusHasBeenSet = true; m_deviceAggregatedStatus = std::move(value); } /** *

A device's aggregated status. Including the device's connection status, * provisioning status, and lease status.

*/ inline Device& WithDeviceAggregatedStatus(const DeviceAggregatedStatus& value) { SetDeviceAggregatedStatus(value); return *this;} /** *

A device's aggregated status. Including the device's connection status, * provisioning status, and lease status.

*/ inline Device& WithDeviceAggregatedStatus(DeviceAggregatedStatus&& value) { SetDeviceAggregatedStatus(std::move(value)); return *this;} /** *

The device's ID.

*/ inline const Aws::String& GetDeviceId() const{ return m_deviceId; } /** *

The device's ID.

*/ inline bool DeviceIdHasBeenSet() const { return m_deviceIdHasBeenSet; } /** *

The device's ID.

*/ inline void SetDeviceId(const Aws::String& value) { m_deviceIdHasBeenSet = true; m_deviceId = value; } /** *

The device's ID.

*/ inline void SetDeviceId(Aws::String&& value) { m_deviceIdHasBeenSet = true; m_deviceId = std::move(value); } /** *

The device's ID.

*/ inline void SetDeviceId(const char* value) { m_deviceIdHasBeenSet = true; m_deviceId.assign(value); } /** *

The device's ID.

*/ inline Device& WithDeviceId(const Aws::String& value) { SetDeviceId(value); return *this;} /** *

The device's ID.

*/ inline Device& WithDeviceId(Aws::String&& value) { SetDeviceId(std::move(value)); return *this;} /** *

The device's ID.

*/ inline Device& WithDeviceId(const char* value) { SetDeviceId(value); return *this;} /** *

When the device was updated.

*/ inline const Aws::Utils::DateTime& GetLastUpdatedTime() const{ return m_lastUpdatedTime; } /** *

When the device was updated.

*/ inline bool LastUpdatedTimeHasBeenSet() const { return m_lastUpdatedTimeHasBeenSet; } /** *

When the device was updated.

*/ inline void SetLastUpdatedTime(const Aws::Utils::DateTime& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = value; } /** *

When the device was updated.

*/ inline void SetLastUpdatedTime(Aws::Utils::DateTime&& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = std::move(value); } /** *

When the device was updated.

*/ inline Device& WithLastUpdatedTime(const Aws::Utils::DateTime& value) { SetLastUpdatedTime(value); return *this;} /** *

When the device was updated.

*/ inline Device& WithLastUpdatedTime(Aws::Utils::DateTime&& value) { SetLastUpdatedTime(std::move(value)); return *this;} /** *

A device's latest job. Includes the target image version, and the update job * status.

*/ inline const LatestDeviceJob& GetLatestDeviceJob() const{ return m_latestDeviceJob; } /** *

A device's latest job. Includes the target image version, and the update job * status.

*/ inline bool LatestDeviceJobHasBeenSet() const { return m_latestDeviceJobHasBeenSet; } /** *

A device's latest job. Includes the target image version, and the update job * status.

*/ inline void SetLatestDeviceJob(const LatestDeviceJob& value) { m_latestDeviceJobHasBeenSet = true; m_latestDeviceJob = value; } /** *

A device's latest job. Includes the target image version, and the update job * status.

*/ inline void SetLatestDeviceJob(LatestDeviceJob&& value) { m_latestDeviceJobHasBeenSet = true; m_latestDeviceJob = std::move(value); } /** *

A device's latest job. Includes the target image version, and the update job * status.

*/ inline Device& WithLatestDeviceJob(const LatestDeviceJob& value) { SetLatestDeviceJob(value); return *this;} /** *

A device's latest job. Includes the target image version, and the update job * status.

*/ inline Device& WithLatestDeviceJob(LatestDeviceJob&& value) { SetLatestDeviceJob(std::move(value)); return *this;} /** *

The device's lease expiration time.

*/ inline const Aws::Utils::DateTime& GetLeaseExpirationTime() const{ return m_leaseExpirationTime; } /** *

The device's lease expiration time.

*/ inline bool LeaseExpirationTimeHasBeenSet() const { return m_leaseExpirationTimeHasBeenSet; } /** *

The device's lease expiration time.

*/ inline void SetLeaseExpirationTime(const Aws::Utils::DateTime& value) { m_leaseExpirationTimeHasBeenSet = true; m_leaseExpirationTime = value; } /** *

The device's lease expiration time.

*/ inline void SetLeaseExpirationTime(Aws::Utils::DateTime&& value) { m_leaseExpirationTimeHasBeenSet = true; m_leaseExpirationTime = std::move(value); } /** *

The device's lease expiration time.

*/ inline Device& WithLeaseExpirationTime(const Aws::Utils::DateTime& value) { SetLeaseExpirationTime(value); return *this;} /** *

The device's lease expiration time.

*/ inline Device& WithLeaseExpirationTime(Aws::Utils::DateTime&& value) { SetLeaseExpirationTime(std::move(value)); return *this;} /** *

The device's name.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The device's name.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The device's name.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The device's name.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The device's name.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The device's name.

*/ inline Device& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The device's name.

*/ inline Device& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The device's name.

*/ inline Device& WithName(const char* value) { SetName(value); return *this;} /** *

The device's provisioning status.

*/ inline const DeviceStatus& GetProvisioningStatus() const{ return m_provisioningStatus; } /** *

The device's provisioning status.

*/ inline bool ProvisioningStatusHasBeenSet() const { return m_provisioningStatusHasBeenSet; } /** *

The device's provisioning status.

*/ inline void SetProvisioningStatus(const DeviceStatus& value) { m_provisioningStatusHasBeenSet = true; m_provisioningStatus = value; } /** *

The device's provisioning status.

*/ inline void SetProvisioningStatus(DeviceStatus&& value) { m_provisioningStatusHasBeenSet = true; m_provisioningStatus = std::move(value); } /** *

The device's provisioning status.

*/ inline Device& WithProvisioningStatus(const DeviceStatus& value) { SetProvisioningStatus(value); return *this;} /** *

The device's provisioning status.

*/ inline Device& WithProvisioningStatus(DeviceStatus&& value) { SetProvisioningStatus(std::move(value)); return *this;} /** *

The device's tags.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

The device's tags.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The device's tags.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The device's tags.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The device's tags.

*/ inline Device& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

The device's tags.

*/ inline Device& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

The device's tags.

*/ inline Device& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The device's tags.

*/ inline Device& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The device's tags.

*/ inline Device& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The device's tags.

*/ inline Device& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

The device's tags.

*/ inline Device& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The device's tags.

*/ inline Device& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The device's tags.

*/ inline Device& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The device's type.

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

The device's type.

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

The device's type.

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

The device's type.

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

The device's type.

*/ inline Device& WithType(const DeviceType& value) { SetType(value); return *this;} /** *

The device's type.

*/ inline Device& WithType(DeviceType&& value) { SetType(std::move(value)); return *this;} private: DeviceBrand m_brand; bool m_brandHasBeenSet = false; Aws::Utils::DateTime m_createdTime; bool m_createdTimeHasBeenSet = false; Aws::String m_currentSoftware; bool m_currentSoftwareHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; DeviceAggregatedStatus m_deviceAggregatedStatus; bool m_deviceAggregatedStatusHasBeenSet = false; Aws::String m_deviceId; bool m_deviceIdHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedTime; bool m_lastUpdatedTimeHasBeenSet = false; LatestDeviceJob m_latestDeviceJob; bool m_latestDeviceJobHasBeenSet = false; Aws::Utils::DateTime m_leaseExpirationTime; bool m_leaseExpirationTimeHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; DeviceStatus m_provisioningStatus; bool m_provisioningStatusHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; DeviceType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace Panorama } // namespace Aws