/** * 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 RDS { 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_RDS_API OrderableDBInstanceOption(); AWS_RDS_API OrderableDBInstanceOption(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_RDS_API OrderableDBInstanceOption& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_RDS_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_RDS_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;} /** *

The Availability Zone group for a DB instance.

*/ inline const Aws::String& GetAvailabilityZoneGroup() const{ return m_availabilityZoneGroup; } /** *

The Availability Zone group for a DB instance.

*/ inline bool AvailabilityZoneGroupHasBeenSet() const { return m_availabilityZoneGroupHasBeenSet; } /** *

The Availability Zone group for a DB instance.

*/ inline void SetAvailabilityZoneGroup(const Aws::String& value) { m_availabilityZoneGroupHasBeenSet = true; m_availabilityZoneGroup = value; } /** *

The Availability Zone group for a DB instance.

*/ inline void SetAvailabilityZoneGroup(Aws::String&& value) { m_availabilityZoneGroupHasBeenSet = true; m_availabilityZoneGroup = std::move(value); } /** *

The Availability Zone group for a DB instance.

*/ inline void SetAvailabilityZoneGroup(const char* value) { m_availabilityZoneGroupHasBeenSet = true; m_availabilityZoneGroup.assign(value); } /** *

The Availability Zone group for a DB instance.

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

The Availability Zone group for a DB instance.

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

The Availability Zone group for a DB instance.

*/ inline OrderableDBInstanceOption& WithAvailabilityZoneGroup(const char* value) { SetAvailabilityZoneGroup(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;} /** *

True if a DB instance supports Performance Insights, otherwise false.

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

True if a DB instance supports Performance Insights, otherwise false.

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

True if a DB instance supports Performance Insights, otherwise false.

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

True if a DB instance supports Performance Insights, otherwise false.

*/ 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 list of the available processor features for the DB instance class of a DB * instance.

*/ inline const Aws::Vector& GetAvailableProcessorFeatures() const{ return m_availableProcessorFeatures; } /** *

A list of the available processor features for the DB instance class of a DB * instance.

*/ inline bool AvailableProcessorFeaturesHasBeenSet() const { return m_availableProcessorFeaturesHasBeenSet; } /** *

A list of the available processor features for the DB instance class of a DB * instance.

*/ inline void SetAvailableProcessorFeatures(const Aws::Vector& value) { m_availableProcessorFeaturesHasBeenSet = true; m_availableProcessorFeatures = value; } /** *

A list of the available processor features for the DB instance class of a DB * instance.

*/ inline void SetAvailableProcessorFeatures(Aws::Vector&& value) { m_availableProcessorFeaturesHasBeenSet = true; m_availableProcessorFeatures = std::move(value); } /** *

A list of the available processor features for the DB instance class of a DB * instance.

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

A list of the available processor features for the DB instance class of a DB * instance.

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

A list of the available processor features for the DB instance class of a DB * instance.

*/ inline OrderableDBInstanceOption& AddAvailableProcessorFeatures(const AvailableProcessorFeature& value) { m_availableProcessorFeaturesHasBeenSet = true; m_availableProcessorFeatures.push_back(value); return *this; } /** *

A list of the available processor features for the DB instance class of a DB * instance.

*/ inline OrderableDBInstanceOption& AddAvailableProcessorFeatures(AvailableProcessorFeature&& value) { m_availableProcessorFeaturesHasBeenSet = true; m_availableProcessorFeatures.push_back(std::move(value)); return *this; } /** *

A list of the supported DB engine modes.

*/ inline const Aws::Vector& GetSupportedEngineModes() const{ return m_supportedEngineModes; } /** *

A list of the supported DB engine modes.

*/ inline bool SupportedEngineModesHasBeenSet() const { return m_supportedEngineModesHasBeenSet; } /** *

A list of the supported DB engine modes.

*/ inline void SetSupportedEngineModes(const Aws::Vector& value) { m_supportedEngineModesHasBeenSet = true; m_supportedEngineModes = value; } /** *

A list of the supported DB engine modes.

*/ inline void SetSupportedEngineModes(Aws::Vector&& value) { m_supportedEngineModesHasBeenSet = true; m_supportedEngineModes = std::move(value); } /** *

A list of the supported DB engine modes.

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

A list of the supported DB engine modes.

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

A list of the supported DB engine modes.

*/ inline OrderableDBInstanceOption& AddSupportedEngineModes(const Aws::String& value) { m_supportedEngineModesHasBeenSet = true; m_supportedEngineModes.push_back(value); return *this; } /** *

A list of the supported DB engine modes.

*/ inline OrderableDBInstanceOption& AddSupportedEngineModes(Aws::String&& value) { m_supportedEngineModesHasBeenSet = true; m_supportedEngineModes.push_back(std::move(value)); return *this; } /** *

A list of the supported DB engine modes.

*/ inline OrderableDBInstanceOption& AddSupportedEngineModes(const char* value) { m_supportedEngineModesHasBeenSet = true; m_supportedEngineModes.push_back(value); return *this; } /** *

Whether Amazon RDS can automatically scale storage for DB instances that use * the specified DB instance class.

*/ inline bool GetSupportsStorageAutoscaling() const{ return m_supportsStorageAutoscaling; } /** *

Whether Amazon RDS can automatically scale storage for DB instances that use * the specified DB instance class.

*/ inline bool SupportsStorageAutoscalingHasBeenSet() const { return m_supportsStorageAutoscalingHasBeenSet; } /** *

Whether Amazon RDS can automatically scale storage for DB instances that use * the specified DB instance class.

*/ inline void SetSupportsStorageAutoscaling(bool value) { m_supportsStorageAutoscalingHasBeenSet = true; m_supportsStorageAutoscaling = value; } /** *

Whether Amazon RDS can automatically scale storage for DB instances that use * the specified DB instance class.

*/ inline OrderableDBInstanceOption& WithSupportsStorageAutoscaling(bool value) { SetSupportsStorageAutoscaling(value); return *this;} /** *

Whether a DB instance supports Kerberos Authentication.

*/ inline bool GetSupportsKerberosAuthentication() const{ return m_supportsKerberosAuthentication; } /** *

Whether a DB instance supports Kerberos Authentication.

*/ inline bool SupportsKerberosAuthenticationHasBeenSet() const { return m_supportsKerberosAuthenticationHasBeenSet; } /** *

Whether a DB instance supports Kerberos Authentication.

*/ inline void SetSupportsKerberosAuthentication(bool value) { m_supportsKerberosAuthenticationHasBeenSet = true; m_supportsKerberosAuthentication = value; } /** *

Whether a DB instance supports Kerberos Authentication.

*/ inline OrderableDBInstanceOption& WithSupportsKerberosAuthentication(bool value) { SetSupportsKerberosAuthentication(value); return *this;} /** *

Whether a DB instance supports RDS on Outposts.

For more information * about RDS on Outposts, see Amazon * RDS on Amazon Web Services Outposts in the Amazon RDS User Guide. *

*/ inline bool GetOutpostCapable() const{ return m_outpostCapable; } /** *

Whether a DB instance supports RDS on Outposts.

For more information * about RDS on Outposts, see Amazon * RDS on Amazon Web Services Outposts in the Amazon RDS User Guide. *

*/ inline bool OutpostCapableHasBeenSet() const { return m_outpostCapableHasBeenSet; } /** *

Whether a DB instance supports RDS on Outposts.

For more information * about RDS on Outposts, see Amazon * RDS on Amazon Web Services Outposts in the Amazon RDS User Guide. *

*/ inline void SetOutpostCapable(bool value) { m_outpostCapableHasBeenSet = true; m_outpostCapable = value; } /** *

Whether a DB instance supports RDS on Outposts.

For more information * about RDS on Outposts, see Amazon * RDS on Amazon Web Services Outposts in the Amazon RDS User Guide. *

*/ inline OrderableDBInstanceOption& WithOutpostCapable(bool value) { SetOutpostCapable(value); return *this;} /** *

The list of supported modes for Database Activity Streams. Aurora PostgreSQL * returns the value [sync, async]. Aurora MySQL and RDS for Oracle * return [async] only. If Database Activity Streams isn't supported, * the return value is an empty list.

*/ inline const Aws::Vector& GetSupportedActivityStreamModes() const{ return m_supportedActivityStreamModes; } /** *

The list of supported modes for Database Activity Streams. Aurora PostgreSQL * returns the value [sync, async]. Aurora MySQL and RDS for Oracle * return [async] only. If Database Activity Streams isn't supported, * the return value is an empty list.

*/ inline bool SupportedActivityStreamModesHasBeenSet() const { return m_supportedActivityStreamModesHasBeenSet; } /** *

The list of supported modes for Database Activity Streams. Aurora PostgreSQL * returns the value [sync, async]. Aurora MySQL and RDS for Oracle * return [async] only. If Database Activity Streams isn't supported, * the return value is an empty list.

*/ inline void SetSupportedActivityStreamModes(const Aws::Vector& value) { m_supportedActivityStreamModesHasBeenSet = true; m_supportedActivityStreamModes = value; } /** *

The list of supported modes for Database Activity Streams. Aurora PostgreSQL * returns the value [sync, async]. Aurora MySQL and RDS for Oracle * return [async] only. If Database Activity Streams isn't supported, * the return value is an empty list.

*/ inline void SetSupportedActivityStreamModes(Aws::Vector&& value) { m_supportedActivityStreamModesHasBeenSet = true; m_supportedActivityStreamModes = std::move(value); } /** *

The list of supported modes for Database Activity Streams. Aurora PostgreSQL * returns the value [sync, async]. Aurora MySQL and RDS for Oracle * return [async] only. If Database Activity Streams isn't supported, * the return value is an empty list.

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

The list of supported modes for Database Activity Streams. Aurora PostgreSQL * returns the value [sync, async]. Aurora MySQL and RDS for Oracle * return [async] only. If Database Activity Streams isn't supported, * the return value is an empty list.

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

The list of supported modes for Database Activity Streams. Aurora PostgreSQL * returns the value [sync, async]. Aurora MySQL and RDS for Oracle * return [async] only. If Database Activity Streams isn't supported, * the return value is an empty list.

*/ inline OrderableDBInstanceOption& AddSupportedActivityStreamModes(const Aws::String& value) { m_supportedActivityStreamModesHasBeenSet = true; m_supportedActivityStreamModes.push_back(value); return *this; } /** *

The list of supported modes for Database Activity Streams. Aurora PostgreSQL * returns the value [sync, async]. Aurora MySQL and RDS for Oracle * return [async] only. If Database Activity Streams isn't supported, * the return value is an empty list.

*/ inline OrderableDBInstanceOption& AddSupportedActivityStreamModes(Aws::String&& value) { m_supportedActivityStreamModesHasBeenSet = true; m_supportedActivityStreamModes.push_back(std::move(value)); return *this; } /** *

The list of supported modes for Database Activity Streams. Aurora PostgreSQL * returns the value [sync, async]. Aurora MySQL and RDS for Oracle * return [async] only. If Database Activity Streams isn't supported, * the return value is an empty list.

*/ inline OrderableDBInstanceOption& AddSupportedActivityStreamModes(const char* value) { m_supportedActivityStreamModesHasBeenSet = true; m_supportedActivityStreamModes.push_back(value); return *this; } /** *

A value that indicates whether you can use Aurora 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 Aurora 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 Aurora 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 Aurora global databases with a * specific combination of other DB engine attributes.

*/ inline OrderableDBInstanceOption& WithSupportsGlobalDatabases(bool value) { SetSupportsGlobalDatabases(value); return *this;} /** *

Whether DB instances can be configured as a Multi-AZ DB cluster.

For * more information on Multi-AZ DB clusters, see * Multi-AZ deployments with two readable standby DB instances in the Amazon * RDS User Guide.

*/ inline bool GetSupportsClusters() const{ return m_supportsClusters; } /** *

Whether DB instances can be configured as a Multi-AZ DB cluster.

For * more information on Multi-AZ DB clusters, see * Multi-AZ deployments with two readable standby DB instances in the Amazon * RDS User Guide.

*/ inline bool SupportsClustersHasBeenSet() const { return m_supportsClustersHasBeenSet; } /** *

Whether DB instances can be configured as a Multi-AZ DB cluster.

For * more information on Multi-AZ DB clusters, see * Multi-AZ deployments with two readable standby DB instances in the Amazon * RDS User Guide.

*/ inline void SetSupportsClusters(bool value) { m_supportsClustersHasBeenSet = true; m_supportsClusters = value; } /** *

Whether DB instances can be configured as a Multi-AZ DB cluster.

For * more information on Multi-AZ DB clusters, see * Multi-AZ deployments with two readable standby DB instances in the Amazon * RDS User Guide.

*/ inline OrderableDBInstanceOption& WithSupportsClusters(bool value) { SetSupportsClusters(value); return *this;} /** *

The network types supported by the DB instance (IPV4 or * DUAL).

A DB instance can support only the IPv4 protocol or * the IPv4 and the IPv6 protocols (DUAL).

For more * information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. *

*/ inline const Aws::Vector& GetSupportedNetworkTypes() const{ return m_supportedNetworkTypes; } /** *

The network types supported by the DB instance (IPV4 or * DUAL).

A DB instance can support only the IPv4 protocol or * the IPv4 and the IPv6 protocols (DUAL).

For more * information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. *

*/ inline bool SupportedNetworkTypesHasBeenSet() const { return m_supportedNetworkTypesHasBeenSet; } /** *

The network types supported by the DB instance (IPV4 or * DUAL).

A DB instance can support only the IPv4 protocol or * the IPv4 and the IPv6 protocols (DUAL).

For more * information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. *

*/ inline void SetSupportedNetworkTypes(const Aws::Vector& value) { m_supportedNetworkTypesHasBeenSet = true; m_supportedNetworkTypes = value; } /** *

The network types supported by the DB instance (IPV4 or * DUAL).

A DB instance can support only the IPv4 protocol or * the IPv4 and the IPv6 protocols (DUAL).

For more * information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. *

*/ inline void SetSupportedNetworkTypes(Aws::Vector&& value) { m_supportedNetworkTypesHasBeenSet = true; m_supportedNetworkTypes = std::move(value); } /** *

The network types supported by the DB instance (IPV4 or * DUAL).

A DB instance can support only the IPv4 protocol or * the IPv4 and the IPv6 protocols (DUAL).

For more * information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. *

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

The network types supported by the DB instance (IPV4 or * DUAL).

A DB instance can support only the IPv4 protocol or * the IPv4 and the IPv6 protocols (DUAL).

For more * information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. *

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

The network types supported by the DB instance (IPV4 or * DUAL).

A DB instance can support only the IPv4 protocol or * the IPv4 and the IPv6 protocols (DUAL).

For more * information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. *

*/ inline OrderableDBInstanceOption& AddSupportedNetworkTypes(const Aws::String& value) { m_supportedNetworkTypesHasBeenSet = true; m_supportedNetworkTypes.push_back(value); return *this; } /** *

The network types supported by the DB instance (IPV4 or * DUAL).

A DB instance can support only the IPv4 protocol or * the IPv4 and the IPv6 protocols (DUAL).

For more * information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. *

*/ inline OrderableDBInstanceOption& AddSupportedNetworkTypes(Aws::String&& value) { m_supportedNetworkTypesHasBeenSet = true; m_supportedNetworkTypes.push_back(std::move(value)); return *this; } /** *

The network types supported by the DB instance (IPV4 or * DUAL).

A DB instance can support only the IPv4 protocol or * the IPv4 and the IPv6 protocols (DUAL).

For more * information, see * Working with a DB instance in a VPC in the Amazon RDS User Guide. *

*/ inline OrderableDBInstanceOption& AddSupportedNetworkTypes(const char* value) { m_supportedNetworkTypesHasBeenSet = true; m_supportedNetworkTypes.push_back(value); return *this; } /** *

Indicates whether a DB instance supports storage throughput.

*/ inline bool GetSupportsStorageThroughput() const{ return m_supportsStorageThroughput; } /** *

Indicates whether a DB instance supports storage throughput.

*/ inline bool SupportsStorageThroughputHasBeenSet() const { return m_supportsStorageThroughputHasBeenSet; } /** *

Indicates whether a DB instance supports storage throughput.

*/ inline void SetSupportsStorageThroughput(bool value) { m_supportsStorageThroughputHasBeenSet = true; m_supportsStorageThroughput = value; } /** *

Indicates whether a DB instance supports storage throughput.

*/ inline OrderableDBInstanceOption& WithSupportsStorageThroughput(bool value) { SetSupportsStorageThroughput(value); return *this;} /** *

Minimum storage throughput for a DB instance.

*/ inline int GetMinStorageThroughputPerDbInstance() const{ return m_minStorageThroughputPerDbInstance; } /** *

Minimum storage throughput for a DB instance.

*/ inline bool MinStorageThroughputPerDbInstanceHasBeenSet() const { return m_minStorageThroughputPerDbInstanceHasBeenSet; } /** *

Minimum storage throughput for a DB instance.

*/ inline void SetMinStorageThroughputPerDbInstance(int value) { m_minStorageThroughputPerDbInstanceHasBeenSet = true; m_minStorageThroughputPerDbInstance = value; } /** *

Minimum storage throughput for a DB instance.

*/ inline OrderableDBInstanceOption& WithMinStorageThroughputPerDbInstance(int value) { SetMinStorageThroughputPerDbInstance(value); return *this;} /** *

Maximum storage throughput for a DB instance.

*/ inline int GetMaxStorageThroughputPerDbInstance() const{ return m_maxStorageThroughputPerDbInstance; } /** *

Maximum storage throughput for a DB instance.

*/ inline bool MaxStorageThroughputPerDbInstanceHasBeenSet() const { return m_maxStorageThroughputPerDbInstanceHasBeenSet; } /** *

Maximum storage throughput for a DB instance.

*/ inline void SetMaxStorageThroughputPerDbInstance(int value) { m_maxStorageThroughputPerDbInstanceHasBeenSet = true; m_maxStorageThroughputPerDbInstance = value; } /** *

Maximum storage throughput for a DB instance.

*/ inline OrderableDBInstanceOption& WithMaxStorageThroughputPerDbInstance(int value) { SetMaxStorageThroughputPerDbInstance(value); return *this;} /** *

Minimum storage throughput to provisioned IOPS ratio for a DB instance.

*/ inline double GetMinStorageThroughputPerIops() const{ return m_minStorageThroughputPerIops; } /** *

Minimum storage throughput to provisioned IOPS ratio for a DB instance.

*/ inline bool MinStorageThroughputPerIopsHasBeenSet() const { return m_minStorageThroughputPerIopsHasBeenSet; } /** *

Minimum storage throughput to provisioned IOPS ratio for a DB instance.

*/ inline void SetMinStorageThroughputPerIops(double value) { m_minStorageThroughputPerIopsHasBeenSet = true; m_minStorageThroughputPerIops = value; } /** *

Minimum storage throughput to provisioned IOPS ratio for a DB instance.

*/ inline OrderableDBInstanceOption& WithMinStorageThroughputPerIops(double value) { SetMinStorageThroughputPerIops(value); return *this;} /** *

Maximum storage throughput to provisioned IOPS ratio for a DB instance.

*/ inline double GetMaxStorageThroughputPerIops() const{ return m_maxStorageThroughputPerIops; } /** *

Maximum storage throughput to provisioned IOPS ratio for a DB instance.

*/ inline bool MaxStorageThroughputPerIopsHasBeenSet() const { return m_maxStorageThroughputPerIopsHasBeenSet; } /** *

Maximum storage throughput to provisioned IOPS ratio for a DB instance.

*/ inline void SetMaxStorageThroughputPerIops(double value) { m_maxStorageThroughputPerIopsHasBeenSet = true; m_maxStorageThroughputPerIops = value; } /** *

Maximum storage throughput to provisioned IOPS ratio for a DB instance.

*/ inline OrderableDBInstanceOption& WithMaxStorageThroughputPerIops(double value) { SetMaxStorageThroughputPerIops(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::String m_availabilityZoneGroup; bool m_availabilityZoneGroupHasBeenSet = 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; Aws::Vector m_availableProcessorFeatures; bool m_availableProcessorFeaturesHasBeenSet = false; Aws::Vector m_supportedEngineModes; bool m_supportedEngineModesHasBeenSet = false; bool m_supportsStorageAutoscaling; bool m_supportsStorageAutoscalingHasBeenSet = false; bool m_supportsKerberosAuthentication; bool m_supportsKerberosAuthenticationHasBeenSet = false; bool m_outpostCapable; bool m_outpostCapableHasBeenSet = false; Aws::Vector m_supportedActivityStreamModes; bool m_supportedActivityStreamModesHasBeenSet = false; bool m_supportsGlobalDatabases; bool m_supportsGlobalDatabasesHasBeenSet = false; bool m_supportsClusters; bool m_supportsClustersHasBeenSet = false; Aws::Vector m_supportedNetworkTypes; bool m_supportedNetworkTypesHasBeenSet = false; bool m_supportsStorageThroughput; bool m_supportsStorageThroughputHasBeenSet = false; int m_minStorageThroughputPerDbInstance; bool m_minStorageThroughputPerDbInstanceHasBeenSet = false; int m_maxStorageThroughputPerDbInstance; bool m_maxStorageThroughputPerDbInstanceHasBeenSet = false; double m_minStorageThroughputPerIops; bool m_minStorageThroughputPerIopsHasBeenSet = false; double m_maxStorageThroughputPerIops; bool m_maxStorageThroughputPerIopsHasBeenSet = false; }; } // namespace Model } // namespace RDS } // namespace Aws