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

Describes a storage volume object.

See Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) for the storage volume. For example, the * following is a valid ARN:

* arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB *

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and * hyphens (-).

*/ inline const Aws::String& GetVolumeARN() const{ return m_volumeARN; } /** *

The Amazon Resource Name (ARN) for the storage volume. For example, the * following is a valid ARN:

* arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB *

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and * hyphens (-).

*/ inline bool VolumeARNHasBeenSet() const { return m_volumeARNHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the storage volume. For example, the * following is a valid ARN:

* arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB *

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and * hyphens (-).

*/ inline void SetVolumeARN(const Aws::String& value) { m_volumeARNHasBeenSet = true; m_volumeARN = value; } /** *

The Amazon Resource Name (ARN) for the storage volume. For example, the * following is a valid ARN:

* arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB *

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and * hyphens (-).

*/ inline void SetVolumeARN(Aws::String&& value) { m_volumeARNHasBeenSet = true; m_volumeARN = std::move(value); } /** *

The Amazon Resource Name (ARN) for the storage volume. For example, the * following is a valid ARN:

* arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB *

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and * hyphens (-).

*/ inline void SetVolumeARN(const char* value) { m_volumeARNHasBeenSet = true; m_volumeARN.assign(value); } /** *

The Amazon Resource Name (ARN) for the storage volume. For example, the * following is a valid ARN:

* arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB *

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and * hyphens (-).

*/ inline VolumeInfo& WithVolumeARN(const Aws::String& value) { SetVolumeARN(value); return *this;} /** *

The Amazon Resource Name (ARN) for the storage volume. For example, the * following is a valid ARN:

* arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB *

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and * hyphens (-).

*/ inline VolumeInfo& WithVolumeARN(Aws::String&& value) { SetVolumeARN(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the storage volume. For example, the * following is a valid ARN:

* arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB *

Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and * hyphens (-).

*/ inline VolumeInfo& WithVolumeARN(const char* value) { SetVolumeARN(value); return *this;} /** *

The unique identifier assigned to the volume. This ID becomes part of the * volume Amazon Resource Name (ARN), which you use as input for other * operations.

Valid Values: 50 to 500 lowercase letters, numbers, periods * (.), and hyphens (-).

*/ inline const Aws::String& GetVolumeId() const{ return m_volumeId; } /** *

The unique identifier assigned to the volume. This ID becomes part of the * volume Amazon Resource Name (ARN), which you use as input for other * operations.

Valid Values: 50 to 500 lowercase letters, numbers, periods * (.), and hyphens (-).

*/ inline bool VolumeIdHasBeenSet() const { return m_volumeIdHasBeenSet; } /** *

The unique identifier assigned to the volume. This ID becomes part of the * volume Amazon Resource Name (ARN), which you use as input for other * operations.

Valid Values: 50 to 500 lowercase letters, numbers, periods * (.), and hyphens (-).

*/ inline void SetVolumeId(const Aws::String& value) { m_volumeIdHasBeenSet = true; m_volumeId = value; } /** *

The unique identifier assigned to the volume. This ID becomes part of the * volume Amazon Resource Name (ARN), which you use as input for other * operations.

Valid Values: 50 to 500 lowercase letters, numbers, periods * (.), and hyphens (-).

*/ inline void SetVolumeId(Aws::String&& value) { m_volumeIdHasBeenSet = true; m_volumeId = std::move(value); } /** *

The unique identifier assigned to the volume. This ID becomes part of the * volume Amazon Resource Name (ARN), which you use as input for other * operations.

Valid Values: 50 to 500 lowercase letters, numbers, periods * (.), and hyphens (-).

*/ inline void SetVolumeId(const char* value) { m_volumeIdHasBeenSet = true; m_volumeId.assign(value); } /** *

The unique identifier assigned to the volume. This ID becomes part of the * volume Amazon Resource Name (ARN), which you use as input for other * operations.

Valid Values: 50 to 500 lowercase letters, numbers, periods * (.), and hyphens (-).

*/ inline VolumeInfo& WithVolumeId(const Aws::String& value) { SetVolumeId(value); return *this;} /** *

The unique identifier assigned to the volume. This ID becomes part of the * volume Amazon Resource Name (ARN), which you use as input for other * operations.

Valid Values: 50 to 500 lowercase letters, numbers, periods * (.), and hyphens (-).

*/ inline VolumeInfo& WithVolumeId(Aws::String&& value) { SetVolumeId(std::move(value)); return *this;} /** *

The unique identifier assigned to the volume. This ID becomes part of the * volume Amazon Resource Name (ARN), which you use as input for other * operations.

Valid Values: 50 to 500 lowercase letters, numbers, periods * (.), and hyphens (-).

*/ inline VolumeInfo& WithVolumeId(const char* value) { SetVolumeId(value); return *this;} inline const Aws::String& GetGatewayARN() const{ return m_gatewayARN; } inline bool GatewayARNHasBeenSet() const { return m_gatewayARNHasBeenSet; } inline void SetGatewayARN(const Aws::String& value) { m_gatewayARNHasBeenSet = true; m_gatewayARN = value; } inline void SetGatewayARN(Aws::String&& value) { m_gatewayARNHasBeenSet = true; m_gatewayARN = std::move(value); } inline void SetGatewayARN(const char* value) { m_gatewayARNHasBeenSet = true; m_gatewayARN.assign(value); } inline VolumeInfo& WithGatewayARN(const Aws::String& value) { SetGatewayARN(value); return *this;} inline VolumeInfo& WithGatewayARN(Aws::String&& value) { SetGatewayARN(std::move(value)); return *this;} inline VolumeInfo& WithGatewayARN(const char* value) { SetGatewayARN(value); return *this;} /** *

The unique identifier assigned to your gateway during activation. This ID * becomes part of the gateway Amazon Resource Name (ARN), which you use as input * for other operations.

Valid Values: 50 to 500 lowercase letters, numbers, * periods (.), and hyphens (-).

*/ inline const Aws::String& GetGatewayId() const{ return m_gatewayId; } /** *

The unique identifier assigned to your gateway during activation. This ID * becomes part of the gateway Amazon Resource Name (ARN), which you use as input * for other operations.

Valid Values: 50 to 500 lowercase letters, numbers, * periods (.), and hyphens (-).

*/ inline bool GatewayIdHasBeenSet() const { return m_gatewayIdHasBeenSet; } /** *

The unique identifier assigned to your gateway during activation. This ID * becomes part of the gateway Amazon Resource Name (ARN), which you use as input * for other operations.

Valid Values: 50 to 500 lowercase letters, numbers, * periods (.), and hyphens (-).

*/ inline void SetGatewayId(const Aws::String& value) { m_gatewayIdHasBeenSet = true; m_gatewayId = value; } /** *

The unique identifier assigned to your gateway during activation. This ID * becomes part of the gateway Amazon Resource Name (ARN), which you use as input * for other operations.

Valid Values: 50 to 500 lowercase letters, numbers, * periods (.), and hyphens (-).

*/ inline void SetGatewayId(Aws::String&& value) { m_gatewayIdHasBeenSet = true; m_gatewayId = std::move(value); } /** *

The unique identifier assigned to your gateway during activation. This ID * becomes part of the gateway Amazon Resource Name (ARN), which you use as input * for other operations.

Valid Values: 50 to 500 lowercase letters, numbers, * periods (.), and hyphens (-).

*/ inline void SetGatewayId(const char* value) { m_gatewayIdHasBeenSet = true; m_gatewayId.assign(value); } /** *

The unique identifier assigned to your gateway during activation. This ID * becomes part of the gateway Amazon Resource Name (ARN), which you use as input * for other operations.

Valid Values: 50 to 500 lowercase letters, numbers, * periods (.), and hyphens (-).

*/ inline VolumeInfo& WithGatewayId(const Aws::String& value) { SetGatewayId(value); return *this;} /** *

The unique identifier assigned to your gateway during activation. This ID * becomes part of the gateway Amazon Resource Name (ARN), which you use as input * for other operations.

Valid Values: 50 to 500 lowercase letters, numbers, * periods (.), and hyphens (-).

*/ inline VolumeInfo& WithGatewayId(Aws::String&& value) { SetGatewayId(std::move(value)); return *this;} /** *

The unique identifier assigned to your gateway during activation. This ID * becomes part of the gateway Amazon Resource Name (ARN), which you use as input * for other operations.

Valid Values: 50 to 500 lowercase letters, numbers, * periods (.), and hyphens (-).

*/ inline VolumeInfo& WithGatewayId(const char* value) { SetGatewayId(value); return *this;} /** *

One of the VolumeType enumeration values describing the type of the * volume.

*/ inline const Aws::String& GetVolumeType() const{ return m_volumeType; } /** *

One of the VolumeType enumeration values describing the type of the * volume.

*/ inline bool VolumeTypeHasBeenSet() const { return m_volumeTypeHasBeenSet; } /** *

One of the VolumeType enumeration values describing the type of the * volume.

*/ inline void SetVolumeType(const Aws::String& value) { m_volumeTypeHasBeenSet = true; m_volumeType = value; } /** *

One of the VolumeType enumeration values describing the type of the * volume.

*/ inline void SetVolumeType(Aws::String&& value) { m_volumeTypeHasBeenSet = true; m_volumeType = std::move(value); } /** *

One of the VolumeType enumeration values describing the type of the * volume.

*/ inline void SetVolumeType(const char* value) { m_volumeTypeHasBeenSet = true; m_volumeType.assign(value); } /** *

One of the VolumeType enumeration values describing the type of the * volume.

*/ inline VolumeInfo& WithVolumeType(const Aws::String& value) { SetVolumeType(value); return *this;} /** *

One of the VolumeType enumeration values describing the type of the * volume.

*/ inline VolumeInfo& WithVolumeType(Aws::String&& value) { SetVolumeType(std::move(value)); return *this;} /** *

One of the VolumeType enumeration values describing the type of the * volume.

*/ inline VolumeInfo& WithVolumeType(const char* value) { SetVolumeType(value); return *this;} /** *

The size of the volume in bytes.

Valid Values: 50 to 500 lowercase * letters, numbers, periods (.), and hyphens (-).

*/ inline long long GetVolumeSizeInBytes() const{ return m_volumeSizeInBytes; } /** *

The size of the volume in bytes.

Valid Values: 50 to 500 lowercase * letters, numbers, periods (.), and hyphens (-).

*/ inline bool VolumeSizeInBytesHasBeenSet() const { return m_volumeSizeInBytesHasBeenSet; } /** *

The size of the volume in bytes.

Valid Values: 50 to 500 lowercase * letters, numbers, periods (.), and hyphens (-).

*/ inline void SetVolumeSizeInBytes(long long value) { m_volumeSizeInBytesHasBeenSet = true; m_volumeSizeInBytes = value; } /** *

The size of the volume in bytes.

Valid Values: 50 to 500 lowercase * letters, numbers, periods (.), and hyphens (-).

*/ inline VolumeInfo& WithVolumeSizeInBytes(long long value) { SetVolumeSizeInBytes(value); return *this;} /** *

One of the VolumeStatus values that indicates the state of the storage * volume.

*/ inline const Aws::String& GetVolumeAttachmentStatus() const{ return m_volumeAttachmentStatus; } /** *

One of the VolumeStatus values that indicates the state of the storage * volume.

*/ inline bool VolumeAttachmentStatusHasBeenSet() const { return m_volumeAttachmentStatusHasBeenSet; } /** *

One of the VolumeStatus values that indicates the state of the storage * volume.

*/ inline void SetVolumeAttachmentStatus(const Aws::String& value) { m_volumeAttachmentStatusHasBeenSet = true; m_volumeAttachmentStatus = value; } /** *

One of the VolumeStatus values that indicates the state of the storage * volume.

*/ inline void SetVolumeAttachmentStatus(Aws::String&& value) { m_volumeAttachmentStatusHasBeenSet = true; m_volumeAttachmentStatus = std::move(value); } /** *

One of the VolumeStatus values that indicates the state of the storage * volume.

*/ inline void SetVolumeAttachmentStatus(const char* value) { m_volumeAttachmentStatusHasBeenSet = true; m_volumeAttachmentStatus.assign(value); } /** *

One of the VolumeStatus values that indicates the state of the storage * volume.

*/ inline VolumeInfo& WithVolumeAttachmentStatus(const Aws::String& value) { SetVolumeAttachmentStatus(value); return *this;} /** *

One of the VolumeStatus values that indicates the state of the storage * volume.

*/ inline VolumeInfo& WithVolumeAttachmentStatus(Aws::String&& value) { SetVolumeAttachmentStatus(std::move(value)); return *this;} /** *

One of the VolumeStatus values that indicates the state of the storage * volume.

*/ inline VolumeInfo& WithVolumeAttachmentStatus(const char* value) { SetVolumeAttachmentStatus(value); return *this;} private: Aws::String m_volumeARN; bool m_volumeARNHasBeenSet = false; Aws::String m_volumeId; bool m_volumeIdHasBeenSet = false; Aws::String m_gatewayARN; bool m_gatewayARNHasBeenSet = false; Aws::String m_gatewayId; bool m_gatewayIdHasBeenSet = false; Aws::String m_volumeType; bool m_volumeTypeHasBeenSet = false; long long m_volumeSizeInBytes; bool m_volumeSizeInBytesHasBeenSet = false; Aws::String m_volumeAttachmentStatus; bool m_volumeAttachmentStatusHasBeenSet = false; }; } // namespace Model } // namespace StorageGateway } // namespace Aws