/** * 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 namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace EC2 { namespace Model { /** *

Describes the instance store features that are supported by the instance * type.

See Also:

AWS * API Reference

*/ class InstanceStorageInfo { public: AWS_EC2_API InstanceStorageInfo(); AWS_EC2_API InstanceStorageInfo(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API InstanceStorageInfo& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The total size of the disks, in GB.

*/ inline long long GetTotalSizeInGB() const{ return m_totalSizeInGB; } /** *

The total size of the disks, in GB.

*/ inline bool TotalSizeInGBHasBeenSet() const { return m_totalSizeInGBHasBeenSet; } /** *

The total size of the disks, in GB.

*/ inline void SetTotalSizeInGB(long long value) { m_totalSizeInGBHasBeenSet = true; m_totalSizeInGB = value; } /** *

The total size of the disks, in GB.

*/ inline InstanceStorageInfo& WithTotalSizeInGB(long long value) { SetTotalSizeInGB(value); return *this;} /** *

Describes the disks that are available for the instance type.

*/ inline const Aws::Vector& GetDisks() const{ return m_disks; } /** *

Describes the disks that are available for the instance type.

*/ inline bool DisksHasBeenSet() const { return m_disksHasBeenSet; } /** *

Describes the disks that are available for the instance type.

*/ inline void SetDisks(const Aws::Vector& value) { m_disksHasBeenSet = true; m_disks = value; } /** *

Describes the disks that are available for the instance type.

*/ inline void SetDisks(Aws::Vector&& value) { m_disksHasBeenSet = true; m_disks = std::move(value); } /** *

Describes the disks that are available for the instance type.

*/ inline InstanceStorageInfo& WithDisks(const Aws::Vector& value) { SetDisks(value); return *this;} /** *

Describes the disks that are available for the instance type.

*/ inline InstanceStorageInfo& WithDisks(Aws::Vector&& value) { SetDisks(std::move(value)); return *this;} /** *

Describes the disks that are available for the instance type.

*/ inline InstanceStorageInfo& AddDisks(const DiskInfo& value) { m_disksHasBeenSet = true; m_disks.push_back(value); return *this; } /** *

Describes the disks that are available for the instance type.

*/ inline InstanceStorageInfo& AddDisks(DiskInfo&& value) { m_disksHasBeenSet = true; m_disks.push_back(std::move(value)); return *this; } /** *

Indicates whether non-volatile memory express (NVMe) is supported.

*/ inline const EphemeralNvmeSupport& GetNvmeSupport() const{ return m_nvmeSupport; } /** *

Indicates whether non-volatile memory express (NVMe) is supported.

*/ inline bool NvmeSupportHasBeenSet() const { return m_nvmeSupportHasBeenSet; } /** *

Indicates whether non-volatile memory express (NVMe) is supported.

*/ inline void SetNvmeSupport(const EphemeralNvmeSupport& value) { m_nvmeSupportHasBeenSet = true; m_nvmeSupport = value; } /** *

Indicates whether non-volatile memory express (NVMe) is supported.

*/ inline void SetNvmeSupport(EphemeralNvmeSupport&& value) { m_nvmeSupportHasBeenSet = true; m_nvmeSupport = std::move(value); } /** *

Indicates whether non-volatile memory express (NVMe) is supported.

*/ inline InstanceStorageInfo& WithNvmeSupport(const EphemeralNvmeSupport& value) { SetNvmeSupport(value); return *this;} /** *

Indicates whether non-volatile memory express (NVMe) is supported.

*/ inline InstanceStorageInfo& WithNvmeSupport(EphemeralNvmeSupport&& value) { SetNvmeSupport(std::move(value)); return *this;} /** *

Indicates whether data is encrypted at rest.

*/ inline const InstanceStorageEncryptionSupport& GetEncryptionSupport() const{ return m_encryptionSupport; } /** *

Indicates whether data is encrypted at rest.

*/ inline bool EncryptionSupportHasBeenSet() const { return m_encryptionSupportHasBeenSet; } /** *

Indicates whether data is encrypted at rest.

*/ inline void SetEncryptionSupport(const InstanceStorageEncryptionSupport& value) { m_encryptionSupportHasBeenSet = true; m_encryptionSupport = value; } /** *

Indicates whether data is encrypted at rest.

*/ inline void SetEncryptionSupport(InstanceStorageEncryptionSupport&& value) { m_encryptionSupportHasBeenSet = true; m_encryptionSupport = std::move(value); } /** *

Indicates whether data is encrypted at rest.

*/ inline InstanceStorageInfo& WithEncryptionSupport(const InstanceStorageEncryptionSupport& value) { SetEncryptionSupport(value); return *this;} /** *

Indicates whether data is encrypted at rest.

*/ inline InstanceStorageInfo& WithEncryptionSupport(InstanceStorageEncryptionSupport&& value) { SetEncryptionSupport(std::move(value)); return *this;} private: long long m_totalSizeInGB; bool m_totalSizeInGBHasBeenSet = false; Aws::Vector m_disks; bool m_disksHasBeenSet = false; EphemeralNvmeSupport m_nvmeSupport; bool m_nvmeSupportHasBeenSet = false; InstanceStorageEncryptionSupport m_encryptionSupport; bool m_encryptionSupportHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws