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

Represents a device object associated with a tape gateway.

See * Also:

AWS * API Reference

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

Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or * media changer).

*/ inline const Aws::String& GetVTLDeviceARN() const{ return m_vTLDeviceARN; } /** *

Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or * media changer).

*/ inline bool VTLDeviceARNHasBeenSet() const { return m_vTLDeviceARNHasBeenSet; } /** *

Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or * media changer).

*/ inline void SetVTLDeviceARN(const Aws::String& value) { m_vTLDeviceARNHasBeenSet = true; m_vTLDeviceARN = value; } /** *

Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or * media changer).

*/ inline void SetVTLDeviceARN(Aws::String&& value) { m_vTLDeviceARNHasBeenSet = true; m_vTLDeviceARN = std::move(value); } /** *

Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or * media changer).

*/ inline void SetVTLDeviceARN(const char* value) { m_vTLDeviceARNHasBeenSet = true; m_vTLDeviceARN.assign(value); } /** *

Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or * media changer).

*/ inline VTLDevice& WithVTLDeviceARN(const Aws::String& value) { SetVTLDeviceARN(value); return *this;} /** *

Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or * media changer).

*/ inline VTLDevice& WithVTLDeviceARN(Aws::String&& value) { SetVTLDeviceARN(std::move(value)); return *this;} /** *

Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or * media changer).

*/ inline VTLDevice& WithVTLDeviceARN(const char* value) { SetVTLDeviceARN(value); return *this;} /** *

Specifies the type of device that the VTL device emulates.

*/ inline const Aws::String& GetVTLDeviceType() const{ return m_vTLDeviceType; } /** *

Specifies the type of device that the VTL device emulates.

*/ inline bool VTLDeviceTypeHasBeenSet() const { return m_vTLDeviceTypeHasBeenSet; } /** *

Specifies the type of device that the VTL device emulates.

*/ inline void SetVTLDeviceType(const Aws::String& value) { m_vTLDeviceTypeHasBeenSet = true; m_vTLDeviceType = value; } /** *

Specifies the type of device that the VTL device emulates.

*/ inline void SetVTLDeviceType(Aws::String&& value) { m_vTLDeviceTypeHasBeenSet = true; m_vTLDeviceType = std::move(value); } /** *

Specifies the type of device that the VTL device emulates.

*/ inline void SetVTLDeviceType(const char* value) { m_vTLDeviceTypeHasBeenSet = true; m_vTLDeviceType.assign(value); } /** *

Specifies the type of device that the VTL device emulates.

*/ inline VTLDevice& WithVTLDeviceType(const Aws::String& value) { SetVTLDeviceType(value); return *this;} /** *

Specifies the type of device that the VTL device emulates.

*/ inline VTLDevice& WithVTLDeviceType(Aws::String&& value) { SetVTLDeviceType(std::move(value)); return *this;} /** *

Specifies the type of device that the VTL device emulates.

*/ inline VTLDevice& WithVTLDeviceType(const char* value) { SetVTLDeviceType(value); return *this;} /** *

Specifies the vendor of the device that the VTL device object emulates.

*/ inline const Aws::String& GetVTLDeviceVendor() const{ return m_vTLDeviceVendor; } /** *

Specifies the vendor of the device that the VTL device object emulates.

*/ inline bool VTLDeviceVendorHasBeenSet() const { return m_vTLDeviceVendorHasBeenSet; } /** *

Specifies the vendor of the device that the VTL device object emulates.

*/ inline void SetVTLDeviceVendor(const Aws::String& value) { m_vTLDeviceVendorHasBeenSet = true; m_vTLDeviceVendor = value; } /** *

Specifies the vendor of the device that the VTL device object emulates.

*/ inline void SetVTLDeviceVendor(Aws::String&& value) { m_vTLDeviceVendorHasBeenSet = true; m_vTLDeviceVendor = std::move(value); } /** *

Specifies the vendor of the device that the VTL device object emulates.

*/ inline void SetVTLDeviceVendor(const char* value) { m_vTLDeviceVendorHasBeenSet = true; m_vTLDeviceVendor.assign(value); } /** *

Specifies the vendor of the device that the VTL device object emulates.

*/ inline VTLDevice& WithVTLDeviceVendor(const Aws::String& value) { SetVTLDeviceVendor(value); return *this;} /** *

Specifies the vendor of the device that the VTL device object emulates.

*/ inline VTLDevice& WithVTLDeviceVendor(Aws::String&& value) { SetVTLDeviceVendor(std::move(value)); return *this;} /** *

Specifies the vendor of the device that the VTL device object emulates.

*/ inline VTLDevice& WithVTLDeviceVendor(const char* value) { SetVTLDeviceVendor(value); return *this;} /** *

Specifies the model number of device that the VTL device emulates.

*/ inline const Aws::String& GetVTLDeviceProductIdentifier() const{ return m_vTLDeviceProductIdentifier; } /** *

Specifies the model number of device that the VTL device emulates.

*/ inline bool VTLDeviceProductIdentifierHasBeenSet() const { return m_vTLDeviceProductIdentifierHasBeenSet; } /** *

Specifies the model number of device that the VTL device emulates.

*/ inline void SetVTLDeviceProductIdentifier(const Aws::String& value) { m_vTLDeviceProductIdentifierHasBeenSet = true; m_vTLDeviceProductIdentifier = value; } /** *

Specifies the model number of device that the VTL device emulates.

*/ inline void SetVTLDeviceProductIdentifier(Aws::String&& value) { m_vTLDeviceProductIdentifierHasBeenSet = true; m_vTLDeviceProductIdentifier = std::move(value); } /** *

Specifies the model number of device that the VTL device emulates.

*/ inline void SetVTLDeviceProductIdentifier(const char* value) { m_vTLDeviceProductIdentifierHasBeenSet = true; m_vTLDeviceProductIdentifier.assign(value); } /** *

Specifies the model number of device that the VTL device emulates.

*/ inline VTLDevice& WithVTLDeviceProductIdentifier(const Aws::String& value) { SetVTLDeviceProductIdentifier(value); return *this;} /** *

Specifies the model number of device that the VTL device emulates.

*/ inline VTLDevice& WithVTLDeviceProductIdentifier(Aws::String&& value) { SetVTLDeviceProductIdentifier(std::move(value)); return *this;} /** *

Specifies the model number of device that the VTL device emulates.

*/ inline VTLDevice& WithVTLDeviceProductIdentifier(const char* value) { SetVTLDeviceProductIdentifier(value); return *this;} /** *

A list of iSCSI information about a VTL device.

*/ inline const DeviceiSCSIAttributes& GetDeviceiSCSIAttributes() const{ return m_deviceiSCSIAttributes; } /** *

A list of iSCSI information about a VTL device.

*/ inline bool DeviceiSCSIAttributesHasBeenSet() const { return m_deviceiSCSIAttributesHasBeenSet; } /** *

A list of iSCSI information about a VTL device.

*/ inline void SetDeviceiSCSIAttributes(const DeviceiSCSIAttributes& value) { m_deviceiSCSIAttributesHasBeenSet = true; m_deviceiSCSIAttributes = value; } /** *

A list of iSCSI information about a VTL device.

*/ inline void SetDeviceiSCSIAttributes(DeviceiSCSIAttributes&& value) { m_deviceiSCSIAttributesHasBeenSet = true; m_deviceiSCSIAttributes = std::move(value); } /** *

A list of iSCSI information about a VTL device.

*/ inline VTLDevice& WithDeviceiSCSIAttributes(const DeviceiSCSIAttributes& value) { SetDeviceiSCSIAttributes(value); return *this;} /** *

A list of iSCSI information about a VTL device.

*/ inline VTLDevice& WithDeviceiSCSIAttributes(DeviceiSCSIAttributes&& value) { SetDeviceiSCSIAttributes(std::move(value)); return *this;} private: Aws::String m_vTLDeviceARN; bool m_vTLDeviceARNHasBeenSet = false; Aws::String m_vTLDeviceType; bool m_vTLDeviceTypeHasBeenSet = false; Aws::String m_vTLDeviceVendor; bool m_vTLDeviceVendorHasBeenSet = false; Aws::String m_vTLDeviceProductIdentifier; bool m_vTLDeviceProductIdentifierHasBeenSet = false; DeviceiSCSIAttributes m_deviceiSCSIAttributes; bool m_deviceiSCSIAttributesHasBeenSet = false; }; } // namespace Model } // namespace StorageGateway } // namespace Aws