/** * 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 Amazon EBS features supported by the instance * type.

See Also:

AWS API * Reference

*/ class EbsInfo { public: AWS_EC2_API EbsInfo(); AWS_EC2_API EbsInfo(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_EC2_API EbsInfo& 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; /** *

Indicates whether the instance type is Amazon EBS-optimized. For more * information, see Amazon * EBS-optimized instances in Amazon EC2 User Guide.

*/ inline const EbsOptimizedSupport& GetEbsOptimizedSupport() const{ return m_ebsOptimizedSupport; } /** *

Indicates whether the instance type is Amazon EBS-optimized. For more * information, see Amazon * EBS-optimized instances in Amazon EC2 User Guide.

*/ inline bool EbsOptimizedSupportHasBeenSet() const { return m_ebsOptimizedSupportHasBeenSet; } /** *

Indicates whether the instance type is Amazon EBS-optimized. For more * information, see Amazon * EBS-optimized instances in Amazon EC2 User Guide.

*/ inline void SetEbsOptimizedSupport(const EbsOptimizedSupport& value) { m_ebsOptimizedSupportHasBeenSet = true; m_ebsOptimizedSupport = value; } /** *

Indicates whether the instance type is Amazon EBS-optimized. For more * information, see Amazon * EBS-optimized instances in Amazon EC2 User Guide.

*/ inline void SetEbsOptimizedSupport(EbsOptimizedSupport&& value) { m_ebsOptimizedSupportHasBeenSet = true; m_ebsOptimizedSupport = std::move(value); } /** *

Indicates whether the instance type is Amazon EBS-optimized. For more * information, see Amazon * EBS-optimized instances in Amazon EC2 User Guide.

*/ inline EbsInfo& WithEbsOptimizedSupport(const EbsOptimizedSupport& value) { SetEbsOptimizedSupport(value); return *this;} /** *

Indicates whether the instance type is Amazon EBS-optimized. For more * information, see Amazon * EBS-optimized instances in Amazon EC2 User Guide.

*/ inline EbsInfo& WithEbsOptimizedSupport(EbsOptimizedSupport&& value) { SetEbsOptimizedSupport(std::move(value)); return *this;} /** *

Indicates whether Amazon EBS encryption is supported.

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

Indicates whether Amazon EBS encryption is supported.

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

Indicates whether Amazon EBS encryption is supported.

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

Indicates whether Amazon EBS encryption is supported.

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

Indicates whether Amazon EBS encryption is supported.

*/ inline EbsInfo& WithEncryptionSupport(const EbsEncryptionSupport& value) { SetEncryptionSupport(value); return *this;} /** *

Indicates whether Amazon EBS encryption is supported.

*/ inline EbsInfo& WithEncryptionSupport(EbsEncryptionSupport&& value) { SetEncryptionSupport(std::move(value)); return *this;} /** *

Describes the optimized EBS performance for the instance type.

*/ inline const EbsOptimizedInfo& GetEbsOptimizedInfo() const{ return m_ebsOptimizedInfo; } /** *

Describes the optimized EBS performance for the instance type.

*/ inline bool EbsOptimizedInfoHasBeenSet() const { return m_ebsOptimizedInfoHasBeenSet; } /** *

Describes the optimized EBS performance for the instance type.

*/ inline void SetEbsOptimizedInfo(const EbsOptimizedInfo& value) { m_ebsOptimizedInfoHasBeenSet = true; m_ebsOptimizedInfo = value; } /** *

Describes the optimized EBS performance for the instance type.

*/ inline void SetEbsOptimizedInfo(EbsOptimizedInfo&& value) { m_ebsOptimizedInfoHasBeenSet = true; m_ebsOptimizedInfo = std::move(value); } /** *

Describes the optimized EBS performance for the instance type.

*/ inline EbsInfo& WithEbsOptimizedInfo(const EbsOptimizedInfo& value) { SetEbsOptimizedInfo(value); return *this;} /** *

Describes the optimized EBS performance for the instance type.

*/ inline EbsInfo& WithEbsOptimizedInfo(EbsOptimizedInfo&& value) { SetEbsOptimizedInfo(std::move(value)); return *this;} /** *

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

*/ inline const EbsNvmeSupport& 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 EbsNvmeSupport& value) { m_nvmeSupportHasBeenSet = true; m_nvmeSupport = value; } /** *

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

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

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

*/ inline EbsInfo& WithNvmeSupport(const EbsNvmeSupport& value) { SetNvmeSupport(value); return *this;} /** *

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

*/ inline EbsInfo& WithNvmeSupport(EbsNvmeSupport&& value) { SetNvmeSupport(std::move(value)); return *this;} private: EbsOptimizedSupport m_ebsOptimizedSupport; bool m_ebsOptimizedSupportHasBeenSet = false; EbsEncryptionSupport m_encryptionSupport; bool m_encryptionSupportHasBeenSet = false; EbsOptimizedInfo m_ebsOptimizedInfo; bool m_ebsOptimizedInfoHasBeenSet = false; EbsNvmeSupport m_nvmeSupport; bool m_nvmeSupportHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws