/** * 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 { /** *

Available option.

See Also:

AWS * API Reference

*/ class OptionGroupOption { public: AWS_RDS_API OptionGroupOption(); AWS_RDS_API OptionGroupOption(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_RDS_API OptionGroupOption& 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 name of the option.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the option.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the option.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the option.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the option.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the option.

*/ inline OptionGroupOption& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the option.

*/ inline OptionGroupOption& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the option.

*/ inline OptionGroupOption& WithName(const char* value) { SetName(value); return *this;} /** *

The description of the option.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the option.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the option.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the option.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the option.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the option.

*/ inline OptionGroupOption& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the option.

*/ inline OptionGroupOption& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description of the option.

*/ inline OptionGroupOption& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The name of the engine that this option can be applied to.

*/ inline const Aws::String& GetEngineName() const{ return m_engineName; } /** *

The name of the engine that this option can be applied to.

*/ inline bool EngineNameHasBeenSet() const { return m_engineNameHasBeenSet; } /** *

The name of the engine that this option can be applied to.

*/ inline void SetEngineName(const Aws::String& value) { m_engineNameHasBeenSet = true; m_engineName = value; } /** *

The name of the engine that this option can be applied to.

*/ inline void SetEngineName(Aws::String&& value) { m_engineNameHasBeenSet = true; m_engineName = std::move(value); } /** *

The name of the engine that this option can be applied to.

*/ inline void SetEngineName(const char* value) { m_engineNameHasBeenSet = true; m_engineName.assign(value); } /** *

The name of the engine that this option can be applied to.

*/ inline OptionGroupOption& WithEngineName(const Aws::String& value) { SetEngineName(value); return *this;} /** *

The name of the engine that this option can be applied to.

*/ inline OptionGroupOption& WithEngineName(Aws::String&& value) { SetEngineName(std::move(value)); return *this;} /** *

The name of the engine that this option can be applied to.

*/ inline OptionGroupOption& WithEngineName(const char* value) { SetEngineName(value); return *this;} /** *

Indicates the major engine version that the option is available for.

*/ inline const Aws::String& GetMajorEngineVersion() const{ return m_majorEngineVersion; } /** *

Indicates the major engine version that the option is available for.

*/ inline bool MajorEngineVersionHasBeenSet() const { return m_majorEngineVersionHasBeenSet; } /** *

Indicates the major engine version that the option is available for.

*/ inline void SetMajorEngineVersion(const Aws::String& value) { m_majorEngineVersionHasBeenSet = true; m_majorEngineVersion = value; } /** *

Indicates the major engine version that the option is available for.

*/ inline void SetMajorEngineVersion(Aws::String&& value) { m_majorEngineVersionHasBeenSet = true; m_majorEngineVersion = std::move(value); } /** *

Indicates the major engine version that the option is available for.

*/ inline void SetMajorEngineVersion(const char* value) { m_majorEngineVersionHasBeenSet = true; m_majorEngineVersion.assign(value); } /** *

Indicates the major engine version that the option is available for.

*/ inline OptionGroupOption& WithMajorEngineVersion(const Aws::String& value) { SetMajorEngineVersion(value); return *this;} /** *

Indicates the major engine version that the option is available for.

*/ inline OptionGroupOption& WithMajorEngineVersion(Aws::String&& value) { SetMajorEngineVersion(std::move(value)); return *this;} /** *

Indicates the major engine version that the option is available for.

*/ inline OptionGroupOption& WithMajorEngineVersion(const char* value) { SetMajorEngineVersion(value); return *this;} /** *

The minimum required engine version for the option to be applied.

*/ inline const Aws::String& GetMinimumRequiredMinorEngineVersion() const{ return m_minimumRequiredMinorEngineVersion; } /** *

The minimum required engine version for the option to be applied.

*/ inline bool MinimumRequiredMinorEngineVersionHasBeenSet() const { return m_minimumRequiredMinorEngineVersionHasBeenSet; } /** *

The minimum required engine version for the option to be applied.

*/ inline void SetMinimumRequiredMinorEngineVersion(const Aws::String& value) { m_minimumRequiredMinorEngineVersionHasBeenSet = true; m_minimumRequiredMinorEngineVersion = value; } /** *

The minimum required engine version for the option to be applied.

*/ inline void SetMinimumRequiredMinorEngineVersion(Aws::String&& value) { m_minimumRequiredMinorEngineVersionHasBeenSet = true; m_minimumRequiredMinorEngineVersion = std::move(value); } /** *

The minimum required engine version for the option to be applied.

*/ inline void SetMinimumRequiredMinorEngineVersion(const char* value) { m_minimumRequiredMinorEngineVersionHasBeenSet = true; m_minimumRequiredMinorEngineVersion.assign(value); } /** *

The minimum required engine version for the option to be applied.

*/ inline OptionGroupOption& WithMinimumRequiredMinorEngineVersion(const Aws::String& value) { SetMinimumRequiredMinorEngineVersion(value); return *this;} /** *

The minimum required engine version for the option to be applied.

*/ inline OptionGroupOption& WithMinimumRequiredMinorEngineVersion(Aws::String&& value) { SetMinimumRequiredMinorEngineVersion(std::move(value)); return *this;} /** *

The minimum required engine version for the option to be applied.

*/ inline OptionGroupOption& WithMinimumRequiredMinorEngineVersion(const char* value) { SetMinimumRequiredMinorEngineVersion(value); return *this;} /** *

Specifies whether the option requires a port.

*/ inline bool GetPortRequired() const{ return m_portRequired; } /** *

Specifies whether the option requires a port.

*/ inline bool PortRequiredHasBeenSet() const { return m_portRequiredHasBeenSet; } /** *

Specifies whether the option requires a port.

*/ inline void SetPortRequired(bool value) { m_portRequiredHasBeenSet = true; m_portRequired = value; } /** *

Specifies whether the option requires a port.

*/ inline OptionGroupOption& WithPortRequired(bool value) { SetPortRequired(value); return *this;} /** *

If the option requires a port, specifies the default port for the option.

*/ inline int GetDefaultPort() const{ return m_defaultPort; } /** *

If the option requires a port, specifies the default port for the option.

*/ inline bool DefaultPortHasBeenSet() const { return m_defaultPortHasBeenSet; } /** *

If the option requires a port, specifies the default port for the option.

*/ inline void SetDefaultPort(int value) { m_defaultPortHasBeenSet = true; m_defaultPort = value; } /** *

If the option requires a port, specifies the default port for the option.

*/ inline OptionGroupOption& WithDefaultPort(int value) { SetDefaultPort(value); return *this;} /** *

The options that are prerequisites for this option.

*/ inline const Aws::Vector& GetOptionsDependedOn() const{ return m_optionsDependedOn; } /** *

The options that are prerequisites for this option.

*/ inline bool OptionsDependedOnHasBeenSet() const { return m_optionsDependedOnHasBeenSet; } /** *

The options that are prerequisites for this option.

*/ inline void SetOptionsDependedOn(const Aws::Vector& value) { m_optionsDependedOnHasBeenSet = true; m_optionsDependedOn = value; } /** *

The options that are prerequisites for this option.

*/ inline void SetOptionsDependedOn(Aws::Vector&& value) { m_optionsDependedOnHasBeenSet = true; m_optionsDependedOn = std::move(value); } /** *

The options that are prerequisites for this option.

*/ inline OptionGroupOption& WithOptionsDependedOn(const Aws::Vector& value) { SetOptionsDependedOn(value); return *this;} /** *

The options that are prerequisites for this option.

*/ inline OptionGroupOption& WithOptionsDependedOn(Aws::Vector&& value) { SetOptionsDependedOn(std::move(value)); return *this;} /** *

The options that are prerequisites for this option.

*/ inline OptionGroupOption& AddOptionsDependedOn(const Aws::String& value) { m_optionsDependedOnHasBeenSet = true; m_optionsDependedOn.push_back(value); return *this; } /** *

The options that are prerequisites for this option.

*/ inline OptionGroupOption& AddOptionsDependedOn(Aws::String&& value) { m_optionsDependedOnHasBeenSet = true; m_optionsDependedOn.push_back(std::move(value)); return *this; } /** *

The options that are prerequisites for this option.

*/ inline OptionGroupOption& AddOptionsDependedOn(const char* value) { m_optionsDependedOnHasBeenSet = true; m_optionsDependedOn.push_back(value); return *this; } /** *

The options that conflict with this option.

*/ inline const Aws::Vector& GetOptionsConflictsWith() const{ return m_optionsConflictsWith; } /** *

The options that conflict with this option.

*/ inline bool OptionsConflictsWithHasBeenSet() const { return m_optionsConflictsWithHasBeenSet; } /** *

The options that conflict with this option.

*/ inline void SetOptionsConflictsWith(const Aws::Vector& value) { m_optionsConflictsWithHasBeenSet = true; m_optionsConflictsWith = value; } /** *

The options that conflict with this option.

*/ inline void SetOptionsConflictsWith(Aws::Vector&& value) { m_optionsConflictsWithHasBeenSet = true; m_optionsConflictsWith = std::move(value); } /** *

The options that conflict with this option.

*/ inline OptionGroupOption& WithOptionsConflictsWith(const Aws::Vector& value) { SetOptionsConflictsWith(value); return *this;} /** *

The options that conflict with this option.

*/ inline OptionGroupOption& WithOptionsConflictsWith(Aws::Vector&& value) { SetOptionsConflictsWith(std::move(value)); return *this;} /** *

The options that conflict with this option.

*/ inline OptionGroupOption& AddOptionsConflictsWith(const Aws::String& value) { m_optionsConflictsWithHasBeenSet = true; m_optionsConflictsWith.push_back(value); return *this; } /** *

The options that conflict with this option.

*/ inline OptionGroupOption& AddOptionsConflictsWith(Aws::String&& value) { m_optionsConflictsWithHasBeenSet = true; m_optionsConflictsWith.push_back(std::move(value)); return *this; } /** *

The options that conflict with this option.

*/ inline OptionGroupOption& AddOptionsConflictsWith(const char* value) { m_optionsConflictsWithHasBeenSet = true; m_optionsConflictsWith.push_back(value); return *this; } /** *

Persistent options can't be removed from an option group while DB instances * are associated with the option group. If you disassociate all DB instances from * the option group, your can remove the persistent option from the option * group.

*/ inline bool GetPersistent() const{ return m_persistent; } /** *

Persistent options can't be removed from an option group while DB instances * are associated with the option group. If you disassociate all DB instances from * the option group, your can remove the persistent option from the option * group.

*/ inline bool PersistentHasBeenSet() const { return m_persistentHasBeenSet; } /** *

Persistent options can't be removed from an option group while DB instances * are associated with the option group. If you disassociate all DB instances from * the option group, your can remove the persistent option from the option * group.

*/ inline void SetPersistent(bool value) { m_persistentHasBeenSet = true; m_persistent = value; } /** *

Persistent options can't be removed from an option group while DB instances * are associated with the option group. If you disassociate all DB instances from * the option group, your can remove the persistent option from the option * group.

*/ inline OptionGroupOption& WithPersistent(bool value) { SetPersistent(value); return *this;} /** *

Permanent options can never be removed from an option group. An option group * containing a permanent option can't be removed from a DB instance.

*/ inline bool GetPermanent() const{ return m_permanent; } /** *

Permanent options can never be removed from an option group. An option group * containing a permanent option can't be removed from a DB instance.

*/ inline bool PermanentHasBeenSet() const { return m_permanentHasBeenSet; } /** *

Permanent options can never be removed from an option group. An option group * containing a permanent option can't be removed from a DB instance.

*/ inline void SetPermanent(bool value) { m_permanentHasBeenSet = true; m_permanent = value; } /** *

Permanent options can never be removed from an option group. An option group * containing a permanent option can't be removed from a DB instance.

*/ inline OptionGroupOption& WithPermanent(bool value) { SetPermanent(value); return *this;} /** *

If true, you must enable the Auto Minor Version Upgrade setting for your DB * instance before you can use this option. You can enable Auto Minor Version * Upgrade when you first create your DB instance, or by modifying your DB instance * later.

*/ inline bool GetRequiresAutoMinorEngineVersionUpgrade() const{ return m_requiresAutoMinorEngineVersionUpgrade; } /** *

If true, you must enable the Auto Minor Version Upgrade setting for your DB * instance before you can use this option. You can enable Auto Minor Version * Upgrade when you first create your DB instance, or by modifying your DB instance * later.

*/ inline bool RequiresAutoMinorEngineVersionUpgradeHasBeenSet() const { return m_requiresAutoMinorEngineVersionUpgradeHasBeenSet; } /** *

If true, you must enable the Auto Minor Version Upgrade setting for your DB * instance before you can use this option. You can enable Auto Minor Version * Upgrade when you first create your DB instance, or by modifying your DB instance * later.

*/ inline void SetRequiresAutoMinorEngineVersionUpgrade(bool value) { m_requiresAutoMinorEngineVersionUpgradeHasBeenSet = true; m_requiresAutoMinorEngineVersionUpgrade = value; } /** *

If true, you must enable the Auto Minor Version Upgrade setting for your DB * instance before you can use this option. You can enable Auto Minor Version * Upgrade when you first create your DB instance, or by modifying your DB instance * later.

*/ inline OptionGroupOption& WithRequiresAutoMinorEngineVersionUpgrade(bool value) { SetRequiresAutoMinorEngineVersionUpgrade(value); return *this;} /** *

If true, you can only use this option with a DB instance that is in a * VPC.

*/ inline bool GetVpcOnly() const{ return m_vpcOnly; } /** *

If true, you can only use this option with a DB instance that is in a * VPC.

*/ inline bool VpcOnlyHasBeenSet() const { return m_vpcOnlyHasBeenSet; } /** *

If true, you can only use this option with a DB instance that is in a * VPC.

*/ inline void SetVpcOnly(bool value) { m_vpcOnlyHasBeenSet = true; m_vpcOnly = value; } /** *

If true, you can only use this option with a DB instance that is in a * VPC.

*/ inline OptionGroupOption& WithVpcOnly(bool value) { SetVpcOnly(value); return *this;} /** *

If true, you can change the option to an earlier version of the option. This * only applies to options that have different versions available.

*/ inline bool GetSupportsOptionVersionDowngrade() const{ return m_supportsOptionVersionDowngrade; } /** *

If true, you can change the option to an earlier version of the option. This * only applies to options that have different versions available.

*/ inline bool SupportsOptionVersionDowngradeHasBeenSet() const { return m_supportsOptionVersionDowngradeHasBeenSet; } /** *

If true, you can change the option to an earlier version of the option. This * only applies to options that have different versions available.

*/ inline void SetSupportsOptionVersionDowngrade(bool value) { m_supportsOptionVersionDowngradeHasBeenSet = true; m_supportsOptionVersionDowngrade = value; } /** *

If true, you can change the option to an earlier version of the option. This * only applies to options that have different versions available.

*/ inline OptionGroupOption& WithSupportsOptionVersionDowngrade(bool value) { SetSupportsOptionVersionDowngrade(value); return *this;} /** *

The option settings that are available (and the default value) for each * option in an option group.

*/ inline const Aws::Vector& GetOptionGroupOptionSettings() const{ return m_optionGroupOptionSettings; } /** *

The option settings that are available (and the default value) for each * option in an option group.

*/ inline bool OptionGroupOptionSettingsHasBeenSet() const { return m_optionGroupOptionSettingsHasBeenSet; } /** *

The option settings that are available (and the default value) for each * option in an option group.

*/ inline void SetOptionGroupOptionSettings(const Aws::Vector& value) { m_optionGroupOptionSettingsHasBeenSet = true; m_optionGroupOptionSettings = value; } /** *

The option settings that are available (and the default value) for each * option in an option group.

*/ inline void SetOptionGroupOptionSettings(Aws::Vector&& value) { m_optionGroupOptionSettingsHasBeenSet = true; m_optionGroupOptionSettings = std::move(value); } /** *

The option settings that are available (and the default value) for each * option in an option group.

*/ inline OptionGroupOption& WithOptionGroupOptionSettings(const Aws::Vector& value) { SetOptionGroupOptionSettings(value); return *this;} /** *

The option settings that are available (and the default value) for each * option in an option group.

*/ inline OptionGroupOption& WithOptionGroupOptionSettings(Aws::Vector&& value) { SetOptionGroupOptionSettings(std::move(value)); return *this;} /** *

The option settings that are available (and the default value) for each * option in an option group.

*/ inline OptionGroupOption& AddOptionGroupOptionSettings(const OptionGroupOptionSetting& value) { m_optionGroupOptionSettingsHasBeenSet = true; m_optionGroupOptionSettings.push_back(value); return *this; } /** *

The option settings that are available (and the default value) for each * option in an option group.

*/ inline OptionGroupOption& AddOptionGroupOptionSettings(OptionGroupOptionSetting&& value) { m_optionGroupOptionSettingsHasBeenSet = true; m_optionGroupOptionSettings.push_back(std::move(value)); return *this; } /** *

The versions that are available for the option.

*/ inline const Aws::Vector& GetOptionGroupOptionVersions() const{ return m_optionGroupOptionVersions; } /** *

The versions that are available for the option.

*/ inline bool OptionGroupOptionVersionsHasBeenSet() const { return m_optionGroupOptionVersionsHasBeenSet; } /** *

The versions that are available for the option.

*/ inline void SetOptionGroupOptionVersions(const Aws::Vector& value) { m_optionGroupOptionVersionsHasBeenSet = true; m_optionGroupOptionVersions = value; } /** *

The versions that are available for the option.

*/ inline void SetOptionGroupOptionVersions(Aws::Vector&& value) { m_optionGroupOptionVersionsHasBeenSet = true; m_optionGroupOptionVersions = std::move(value); } /** *

The versions that are available for the option.

*/ inline OptionGroupOption& WithOptionGroupOptionVersions(const Aws::Vector& value) { SetOptionGroupOptionVersions(value); return *this;} /** *

The versions that are available for the option.

*/ inline OptionGroupOption& WithOptionGroupOptionVersions(Aws::Vector&& value) { SetOptionGroupOptionVersions(std::move(value)); return *this;} /** *

The versions that are available for the option.

*/ inline OptionGroupOption& AddOptionGroupOptionVersions(const OptionVersion& value) { m_optionGroupOptionVersionsHasBeenSet = true; m_optionGroupOptionVersions.push_back(value); return *this; } /** *

The versions that are available for the option.

*/ inline OptionGroupOption& AddOptionGroupOptionVersions(OptionVersion&& value) { m_optionGroupOptionVersionsHasBeenSet = true; m_optionGroupOptionVersions.push_back(std::move(value)); return *this; } /** *

Specifies whether the option can be copied across Amazon Web Services * accounts.

*/ inline bool GetCopyableCrossAccount() const{ return m_copyableCrossAccount; } /** *

Specifies whether the option can be copied across Amazon Web Services * accounts.

*/ inline bool CopyableCrossAccountHasBeenSet() const { return m_copyableCrossAccountHasBeenSet; } /** *

Specifies whether the option can be copied across Amazon Web Services * accounts.

*/ inline void SetCopyableCrossAccount(bool value) { m_copyableCrossAccountHasBeenSet = true; m_copyableCrossAccount = value; } /** *

Specifies whether the option can be copied across Amazon Web Services * accounts.

*/ inline OptionGroupOption& WithCopyableCrossAccount(bool value) { SetCopyableCrossAccount(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_engineName; bool m_engineNameHasBeenSet = false; Aws::String m_majorEngineVersion; bool m_majorEngineVersionHasBeenSet = false; Aws::String m_minimumRequiredMinorEngineVersion; bool m_minimumRequiredMinorEngineVersionHasBeenSet = false; bool m_portRequired; bool m_portRequiredHasBeenSet = false; int m_defaultPort; bool m_defaultPortHasBeenSet = false; Aws::Vector m_optionsDependedOn; bool m_optionsDependedOnHasBeenSet = false; Aws::Vector m_optionsConflictsWith; bool m_optionsConflictsWithHasBeenSet = false; bool m_persistent; bool m_persistentHasBeenSet = false; bool m_permanent; bool m_permanentHasBeenSet = false; bool m_requiresAutoMinorEngineVersionUpgrade; bool m_requiresAutoMinorEngineVersionUpgradeHasBeenSet = false; bool m_vpcOnly; bool m_vpcOnlyHasBeenSet = false; bool m_supportsOptionVersionDowngrade; bool m_supportsOptionVersionDowngradeHasBeenSet = false; Aws::Vector m_optionGroupOptionSettings; bool m_optionGroupOptionSettingsHasBeenSet = false; Aws::Vector m_optionGroupOptionVersions; bool m_optionGroupOptionVersionsHasBeenSet = false; bool m_copyableCrossAccount; bool m_copyableCrossAccountHasBeenSet = false; }; } // namespace Model } // namespace RDS } // namespace Aws