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

Contains a list of available options for a DB instance.

This data * type is used as a response element in the * DescribeOrderableDBInstanceOptions action.

See Also:

AWS * API Reference

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

The engine type of a DB instance.

*/ inline const Aws::String& GetEngine() const{ return m_engine; } /** *

The engine type of a DB instance.

*/ inline bool EngineHasBeenSet() const { return m_engineHasBeenSet; } /** *

The engine type of a DB instance.

*/ inline void SetEngine(const Aws::String& value) { m_engineHasBeenSet = true; m_engine = value; } /** *

The engine type of a DB instance.

*/ inline void SetEngine(Aws::String&& value) { m_engineHasBeenSet = true; m_engine = std::move(value); } /** *

The engine type of a DB instance.

*/ inline void SetEngine(const char* value) { m_engineHasBeenSet = true; m_engine.assign(value); } /** *

The engine type of a DB instance.

*/ inline OrderableDBInstanceOption& WithEngine(const Aws::String& value) { SetEngine(value); return *this;} /** *

The engine type of a DB instance.

*/ inline OrderableDBInstanceOption& WithEngine(Aws::String&& value) { SetEngine(std::move(value)); return *this;} /** *

The engine type of a DB instance.

*/ inline OrderableDBInstanceOption& WithEngine(const char* value) { SetEngine(value); return *this;} /** *

The engine version of a DB instance.

*/ inline const Aws::String& GetEngineVersion() const{ return m_engineVersion; } /** *

The engine version of a DB instance.

*/ inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; } /** *

The engine version of a DB instance.

*/ inline void SetEngineVersion(const Aws::String& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; } /** *

The engine version of a DB instance.

*/ inline void SetEngineVersion(Aws::String&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); } /** *

The engine version of a DB instance.

*/ inline void SetEngineVersion(const char* value) { m_engineVersionHasBeenSet = true; m_engineVersion.assign(value); } /** *

The engine version of a DB instance.

*/ inline OrderableDBInstanceOption& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;} /** *

The engine version of a DB instance.

*/ inline OrderableDBInstanceOption& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;} /** *

The engine version of a DB instance.

*/ inline OrderableDBInstanceOption& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;} /** *

The DB instance class for a DB instance.

*/ inline const Aws::String& GetDBInstanceClass() const{ return m_dBInstanceClass; } /** *

The DB instance class for a DB instance.

*/ inline bool DBInstanceClassHasBeenSet() const { return m_dBInstanceClassHasBeenSet; } /** *

The DB instance class for a DB instance.

*/ inline void SetDBInstanceClass(const Aws::String& value) { m_dBInstanceClassHasBeenSet = true; m_dBInstanceClass = value; } /** *

The DB instance class for a DB instance.

*/ inline void SetDBInstanceClass(Aws::String&& value) { m_dBInstanceClassHasBeenSet = true; m_dBInstanceClass = std::move(value); } /** *

The DB instance class for a DB instance.

*/ inline void SetDBInstanceClass(const char* value) { m_dBInstanceClassHasBeenSet = true; m_dBInstanceClass.assign(value); } /** *

The DB instance class for a DB instance.

*/ inline OrderableDBInstanceOption& WithDBInstanceClass(const Aws::String& value) { SetDBInstanceClass(value); return *this;} /** *

The DB instance class for a DB instance.

*/ inline OrderableDBInstanceOption& WithDBInstanceClass(Aws::String&& value) { SetDBInstanceClass(std::move(value)); return *this;} /** *

The DB instance class for a DB instance.

*/ inline OrderableDBInstanceOption& WithDBInstanceClass(const char* value) { SetDBInstanceClass(value); return *this;} /** *

The license model for a DB instance.

*/ inline const Aws::String& GetLicenseModel() const{ return m_licenseModel; } /** *

The license model for a DB instance.

*/ inline bool LicenseModelHasBeenSet() const { return m_licenseModelHasBeenSet; } /** *

The license model for a DB instance.

*/ inline void SetLicenseModel(const Aws::String& value) { m_licenseModelHasBeenSet = true; m_licenseModel = value; } /** *

The license model for a DB instance.

*/ inline void SetLicenseModel(Aws::String&& value) { m_licenseModelHasBeenSet = true; m_licenseModel = std::move(value); } /** *

The license model for a DB instance.

*/ inline void SetLicenseModel(const char* value) { m_licenseModelHasBeenSet = true; m_licenseModel.assign(value); } /** *

The license model for a DB instance.

*/ inline OrderableDBInstanceOption& WithLicenseModel(const Aws::String& value) { SetLicenseModel(value); return *this;} /** *

The license model for a DB instance.

*/ inline OrderableDBInstanceOption& WithLicenseModel(Aws::String&& value) { SetLicenseModel(std::move(value)); return *this;} /** *

The license model for a DB instance.

*/ inline OrderableDBInstanceOption& WithLicenseModel(const char* value) { SetLicenseModel(value); return *this;} /** *

A list of Availability Zones for a DB instance.

*/ inline const Aws::Vector& GetAvailabilityZones() const{ return m_availabilityZones; } /** *

A list of Availability Zones for a DB instance.

*/ inline bool AvailabilityZonesHasBeenSet() const { return m_availabilityZonesHasBeenSet; } /** *

A list of Availability Zones for a DB instance.

*/ inline void SetAvailabilityZones(const Aws::Vector& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = value; } /** *

A list of Availability Zones for a DB instance.

*/ inline void SetAvailabilityZones(Aws::Vector&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = std::move(value); } /** *

A list of Availability Zones for a DB instance.

*/ inline OrderableDBInstanceOption& WithAvailabilityZones(const Aws::Vector& value) { SetAvailabilityZones(value); return *this;} /** *

A list of Availability Zones for a DB instance.

*/ inline OrderableDBInstanceOption& WithAvailabilityZones(Aws::Vector&& value) { SetAvailabilityZones(std::move(value)); return *this;} /** *

A list of Availability Zones for a DB instance.

*/ inline OrderableDBInstanceOption& AddAvailabilityZones(const AvailabilityZone& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; } /** *

A list of Availability Zones for a DB instance.

*/ inline OrderableDBInstanceOption& AddAvailabilityZones(AvailabilityZone&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(std::move(value)); return *this; } /** *

Indicates whether a DB instance is Multi-AZ capable.

*/ inline bool GetMultiAZCapable() const{ return m_multiAZCapable; } /** *

Indicates whether a DB instance is Multi-AZ capable.

*/ inline bool MultiAZCapableHasBeenSet() const { return m_multiAZCapableHasBeenSet; } /** *

Indicates whether a DB instance is Multi-AZ capable.

*/ inline void SetMultiAZCapable(bool value) { m_multiAZCapableHasBeenSet = true; m_multiAZCapable = value; } /** *

Indicates whether a DB instance is Multi-AZ capable.

*/ inline OrderableDBInstanceOption& WithMultiAZCapable(bool value) { SetMultiAZCapable(value); return *this;} /** *

Indicates whether a DB instance can have a Read Replica.

*/ inline bool GetReadReplicaCapable() const{ return m_readReplicaCapable; } /** *

Indicates whether a DB instance can have a Read Replica.

*/ inline bool ReadReplicaCapableHasBeenSet() const { return m_readReplicaCapableHasBeenSet; } /** *

Indicates whether a DB instance can have a Read Replica.

*/ inline void SetReadReplicaCapable(bool value) { m_readReplicaCapableHasBeenSet = true; m_readReplicaCapable = value; } /** *

Indicates whether a DB instance can have a Read Replica.

*/ inline OrderableDBInstanceOption& WithReadReplicaCapable(bool value) { SetReadReplicaCapable(value); return *this;} /** *

Indicates whether a DB instance is in a VPC.

*/ inline bool GetVpc() const{ return m_vpc; } /** *

Indicates whether a DB instance is in a VPC.

*/ inline bool VpcHasBeenSet() const { return m_vpcHasBeenSet; } /** *

Indicates whether a DB instance is in a VPC.

*/ inline void SetVpc(bool value) { m_vpcHasBeenSet = true; m_vpc = value; } /** *

Indicates whether a DB instance is in a VPC.

*/ inline OrderableDBInstanceOption& WithVpc(bool value) { SetVpc(value); return *this;} /** *

Indicates whether a DB instance supports encrypted storage.

*/ inline bool GetSupportsStorageEncryption() const{ return m_supportsStorageEncryption; } /** *

Indicates whether a DB instance supports encrypted storage.

*/ inline bool SupportsStorageEncryptionHasBeenSet() const { return m_supportsStorageEncryptionHasBeenSet; } /** *

Indicates whether a DB instance supports encrypted storage.

*/ inline void SetSupportsStorageEncryption(bool value) { m_supportsStorageEncryptionHasBeenSet = true; m_supportsStorageEncryption = value; } /** *

Indicates whether a DB instance supports encrypted storage.

*/ inline OrderableDBInstanceOption& WithSupportsStorageEncryption(bool value) { SetSupportsStorageEncryption(value); return *this;} /** *

Indicates the storage type for a DB instance.

*/ inline const Aws::String& GetStorageType() const{ return m_storageType; } /** *

Indicates the storage type for a DB instance.

*/ inline bool StorageTypeHasBeenSet() const { return m_storageTypeHasBeenSet; } /** *

Indicates the storage type for a DB instance.

*/ inline void SetStorageType(const Aws::String& value) { m_storageTypeHasBeenSet = true; m_storageType = value; } /** *

Indicates the storage type for a DB instance.

*/ inline void SetStorageType(Aws::String&& value) { m_storageTypeHasBeenSet = true; m_storageType = std::move(value); } /** *

Indicates the storage type for a DB instance.

*/ inline void SetStorageType(const char* value) { m_storageTypeHasBeenSet = true; m_storageType.assign(value); } /** *

Indicates the storage type for a DB instance.

*/ inline OrderableDBInstanceOption& WithStorageType(const Aws::String& value) { SetStorageType(value); return *this;} /** *

Indicates the storage type for a DB instance.

*/ inline OrderableDBInstanceOption& WithStorageType(Aws::String&& value) { SetStorageType(std::move(value)); return *this;} /** *

Indicates the storage type for a DB instance.

*/ inline OrderableDBInstanceOption& WithStorageType(const char* value) { SetStorageType(value); return *this;} /** *

Indicates whether a DB instance supports provisioned IOPS.

*/ inline bool GetSupportsIops() const{ return m_supportsIops; } /** *

Indicates whether a DB instance supports provisioned IOPS.

*/ inline bool SupportsIopsHasBeenSet() const { return m_supportsIopsHasBeenSet; } /** *

Indicates whether a DB instance supports provisioned IOPS.

*/ inline void SetSupportsIops(bool value) { m_supportsIopsHasBeenSet = true; m_supportsIops = value; } /** *

Indicates whether a DB instance supports provisioned IOPS.

*/ inline OrderableDBInstanceOption& WithSupportsIops(bool value) { SetSupportsIops(value); return *this;} /** *

Indicates whether a DB instance supports Enhanced Monitoring at intervals * from 1 to 60 seconds.

*/ inline bool GetSupportsEnhancedMonitoring() const{ return m_supportsEnhancedMonitoring; } /** *

Indicates whether a DB instance supports Enhanced Monitoring at intervals * from 1 to 60 seconds.

*/ inline bool SupportsEnhancedMonitoringHasBeenSet() const { return m_supportsEnhancedMonitoringHasBeenSet; } /** *

Indicates whether a DB instance supports Enhanced Monitoring at intervals * from 1 to 60 seconds.

*/ inline void SetSupportsEnhancedMonitoring(bool value) { m_supportsEnhancedMonitoringHasBeenSet = true; m_supportsEnhancedMonitoring = value; } /** *

Indicates whether a DB instance supports Enhanced Monitoring at intervals * from 1 to 60 seconds.

*/ inline OrderableDBInstanceOption& WithSupportsEnhancedMonitoring(bool value) { SetSupportsEnhancedMonitoring(value); return *this;} /** *

Indicates whether a DB instance supports IAM database authentication.

*/ inline bool GetSupportsIAMDatabaseAuthentication() const{ return m_supportsIAMDatabaseAuthentication; } /** *

Indicates whether a DB instance supports IAM database authentication.

*/ inline bool SupportsIAMDatabaseAuthenticationHasBeenSet() const { return m_supportsIAMDatabaseAuthenticationHasBeenSet; } /** *

Indicates whether a DB instance supports IAM database authentication.

*/ inline void SetSupportsIAMDatabaseAuthentication(bool value) { m_supportsIAMDatabaseAuthenticationHasBeenSet = true; m_supportsIAMDatabaseAuthentication = value; } /** *

Indicates whether a DB instance supports IAM database authentication.

*/ inline OrderableDBInstanceOption& WithSupportsIAMDatabaseAuthentication(bool value) { SetSupportsIAMDatabaseAuthentication(value); return *this;} /** *

(Not supported by Neptune)

*/ inline bool GetSupportsPerformanceInsights() const{ return m_supportsPerformanceInsights; } /** *

(Not supported by Neptune)

*/ inline bool SupportsPerformanceInsightsHasBeenSet() const { return m_supportsPerformanceInsightsHasBeenSet; } /** *

(Not supported by Neptune)

*/ inline void SetSupportsPerformanceInsights(bool value) { m_supportsPerformanceInsightsHasBeenSet = true; m_supportsPerformanceInsights = value; } /** *

(Not supported by Neptune)

*/ inline OrderableDBInstanceOption& WithSupportsPerformanceInsights(bool value) { SetSupportsPerformanceInsights(value); return *this;} /** *

Minimum storage size for a DB instance.

*/ inline int GetMinStorageSize() const{ return m_minStorageSize; } /** *

Minimum storage size for a DB instance.

*/ inline bool MinStorageSizeHasBeenSet() const { return m_minStorageSizeHasBeenSet; } /** *

Minimum storage size for a DB instance.

*/ inline void SetMinStorageSize(int value) { m_minStorageSizeHasBeenSet = true; m_minStorageSize = value; } /** *

Minimum storage size for a DB instance.

*/ inline OrderableDBInstanceOption& WithMinStorageSize(int value) { SetMinStorageSize(value); return *this;} /** *

Maximum storage size for a DB instance.

*/ inline int GetMaxStorageSize() const{ return m_maxStorageSize; } /** *

Maximum storage size for a DB instance.

*/ inline bool MaxStorageSizeHasBeenSet() const { return m_maxStorageSizeHasBeenSet; } /** *

Maximum storage size for a DB instance.

*/ inline void SetMaxStorageSize(int value) { m_maxStorageSizeHasBeenSet = true; m_maxStorageSize = value; } /** *

Maximum storage size for a DB instance.

*/ inline OrderableDBInstanceOption& WithMaxStorageSize(int value) { SetMaxStorageSize(value); return *this;} /** *

Minimum total provisioned IOPS for a DB instance.

*/ inline int GetMinIopsPerDbInstance() const{ return m_minIopsPerDbInstance; } /** *

Minimum total provisioned IOPS for a DB instance.

*/ inline bool MinIopsPerDbInstanceHasBeenSet() const { return m_minIopsPerDbInstanceHasBeenSet; } /** *

Minimum total provisioned IOPS for a DB instance.

*/ inline void SetMinIopsPerDbInstance(int value) { m_minIopsPerDbInstanceHasBeenSet = true; m_minIopsPerDbInstance = value; } /** *

Minimum total provisioned IOPS for a DB instance.

*/ inline OrderableDBInstanceOption& WithMinIopsPerDbInstance(int value) { SetMinIopsPerDbInstance(value); return *this;} /** *

Maximum total provisioned IOPS for a DB instance.

*/ inline int GetMaxIopsPerDbInstance() const{ return m_maxIopsPerDbInstance; } /** *

Maximum total provisioned IOPS for a DB instance.

*/ inline bool MaxIopsPerDbInstanceHasBeenSet() const { return m_maxIopsPerDbInstanceHasBeenSet; } /** *

Maximum total provisioned IOPS for a DB instance.

*/ inline void SetMaxIopsPerDbInstance(int value) { m_maxIopsPerDbInstanceHasBeenSet = true; m_maxIopsPerDbInstance = value; } /** *

Maximum total provisioned IOPS for a DB instance.

*/ inline OrderableDBInstanceOption& WithMaxIopsPerDbInstance(int value) { SetMaxIopsPerDbInstance(value); return *this;} /** *

Minimum provisioned IOPS per GiB for a DB instance.

*/ inline double GetMinIopsPerGib() const{ return m_minIopsPerGib; } /** *

Minimum provisioned IOPS per GiB for a DB instance.

*/ inline bool MinIopsPerGibHasBeenSet() const { return m_minIopsPerGibHasBeenSet; } /** *

Minimum provisioned IOPS per GiB for a DB instance.

*/ inline void SetMinIopsPerGib(double value) { m_minIopsPerGibHasBeenSet = true; m_minIopsPerGib = value; } /** *

Minimum provisioned IOPS per GiB for a DB instance.

*/ inline OrderableDBInstanceOption& WithMinIopsPerGib(double value) { SetMinIopsPerGib(value); return *this;} /** *

Maximum provisioned IOPS per GiB for a DB instance.

*/ inline double GetMaxIopsPerGib() const{ return m_maxIopsPerGib; } /** *

Maximum provisioned IOPS per GiB for a DB instance.

*/ inline bool MaxIopsPerGibHasBeenSet() const { return m_maxIopsPerGibHasBeenSet; } /** *

Maximum provisioned IOPS per GiB for a DB instance.

*/ inline void SetMaxIopsPerGib(double value) { m_maxIopsPerGibHasBeenSet = true; m_maxIopsPerGib = value; } /** *

Maximum provisioned IOPS per GiB for a DB instance.

*/ inline OrderableDBInstanceOption& WithMaxIopsPerGib(double value) { SetMaxIopsPerGib(value); return *this;} /** *

A value that indicates whether you can use Neptune global databases with a * specific combination of other DB engine attributes.

*/ inline bool GetSupportsGlobalDatabases() const{ return m_supportsGlobalDatabases; } /** *

A value that indicates whether you can use Neptune global databases with a * specific combination of other DB engine attributes.

*/ inline bool SupportsGlobalDatabasesHasBeenSet() const { return m_supportsGlobalDatabasesHasBeenSet; } /** *

A value that indicates whether you can use Neptune global databases with a * specific combination of other DB engine attributes.

*/ inline void SetSupportsGlobalDatabases(bool value) { m_supportsGlobalDatabasesHasBeenSet = true; m_supportsGlobalDatabases = value; } /** *

A value that indicates whether you can use Neptune global databases with a * specific combination of other DB engine attributes.

*/ inline OrderableDBInstanceOption& WithSupportsGlobalDatabases(bool value) { SetSupportsGlobalDatabases(value); return *this;} private: Aws::String m_engine; bool m_engineHasBeenSet = false; Aws::String m_engineVersion; bool m_engineVersionHasBeenSet = false; Aws::String m_dBInstanceClass; bool m_dBInstanceClassHasBeenSet = false; Aws::String m_licenseModel; bool m_licenseModelHasBeenSet = false; Aws::Vector m_availabilityZones; bool m_availabilityZonesHasBeenSet = false; bool m_multiAZCapable; bool m_multiAZCapableHasBeenSet = false; bool m_readReplicaCapable; bool m_readReplicaCapableHasBeenSet = false; bool m_vpc; bool m_vpcHasBeenSet = false; bool m_supportsStorageEncryption; bool m_supportsStorageEncryptionHasBeenSet = false; Aws::String m_storageType; bool m_storageTypeHasBeenSet = false; bool m_supportsIops; bool m_supportsIopsHasBeenSet = false; bool m_supportsEnhancedMonitoring; bool m_supportsEnhancedMonitoringHasBeenSet = false; bool m_supportsIAMDatabaseAuthentication; bool m_supportsIAMDatabaseAuthenticationHasBeenSet = false; bool m_supportsPerformanceInsights; bool m_supportsPerformanceInsightsHasBeenSet = false; int m_minStorageSize; bool m_minStorageSizeHasBeenSet = false; int m_maxStorageSize; bool m_maxStorageSizeHasBeenSet = false; int m_minIopsPerDbInstance; bool m_minIopsPerDbInstanceHasBeenSet = false; int m_maxIopsPerDbInstance; bool m_maxIopsPerDbInstanceHasBeenSet = false; double m_minIopsPerGib; bool m_minIopsPerGibHasBeenSet = false; double m_maxIopsPerGib; bool m_maxIopsPerGibHasBeenSet = false; bool m_supportsGlobalDatabases; bool m_supportsGlobalDatabasesHasBeenSet = false; }; } // namespace Model } // namespace Neptune } // namespace Aws