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

Option details.

See Also:

AWS API * Reference

*/ class Option { public: AWS_RDS_API Option(); AWS_RDS_API Option(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_RDS_API Option& 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& GetOptionName() const{ return m_optionName; } /** *

The name of the option.

*/ inline bool OptionNameHasBeenSet() const { return m_optionNameHasBeenSet; } /** *

The name of the option.

*/ inline void SetOptionName(const Aws::String& value) { m_optionNameHasBeenSet = true; m_optionName = value; } /** *

The name of the option.

*/ inline void SetOptionName(Aws::String&& value) { m_optionNameHasBeenSet = true; m_optionName = std::move(value); } /** *

The name of the option.

*/ inline void SetOptionName(const char* value) { m_optionNameHasBeenSet = true; m_optionName.assign(value); } /** *

The name of the option.

*/ inline Option& WithOptionName(const Aws::String& value) { SetOptionName(value); return *this;} /** *

The name of the option.

*/ inline Option& WithOptionName(Aws::String&& value) { SetOptionName(std::move(value)); return *this;} /** *

The name of the option.

*/ inline Option& WithOptionName(const char* value) { SetOptionName(value); return *this;} /** *

The description of the option.

*/ inline const Aws::String& GetOptionDescription() const{ return m_optionDescription; } /** *

The description of the option.

*/ inline bool OptionDescriptionHasBeenSet() const { return m_optionDescriptionHasBeenSet; } /** *

The description of the option.

*/ inline void SetOptionDescription(const Aws::String& value) { m_optionDescriptionHasBeenSet = true; m_optionDescription = value; } /** *

The description of the option.

*/ inline void SetOptionDescription(Aws::String&& value) { m_optionDescriptionHasBeenSet = true; m_optionDescription = std::move(value); } /** *

The description of the option.

*/ inline void SetOptionDescription(const char* value) { m_optionDescriptionHasBeenSet = true; m_optionDescription.assign(value); } /** *

The description of the option.

*/ inline Option& WithOptionDescription(const Aws::String& value) { SetOptionDescription(value); return *this;} /** *

The description of the option.

*/ inline Option& WithOptionDescription(Aws::String&& value) { SetOptionDescription(std::move(value)); return *this;} /** *

The description of the option.

*/ inline Option& WithOptionDescription(const char* value) { SetOptionDescription(value); return *this;} /** *

Indicate if this option is persistent.

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

Indicate if this option is persistent.

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

Indicate if this option is persistent.

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

Indicate if this option is persistent.

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

Indicate if this option is permanent.

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

Indicate if this option is permanent.

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

Indicate if this option is permanent.

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

Indicate if this option is permanent.

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

If required, the port configured for this option to use.

*/ inline int GetPort() const{ return m_port; } /** *

If required, the port configured for this option to use.

*/ inline bool PortHasBeenSet() const { return m_portHasBeenSet; } /** *

If required, the port configured for this option to use.

*/ inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; } /** *

If required, the port configured for this option to use.

*/ inline Option& WithPort(int value) { SetPort(value); return *this;} /** *

The version of the option.

*/ inline const Aws::String& GetOptionVersion() const{ return m_optionVersion; } /** *

The version of the option.

*/ inline bool OptionVersionHasBeenSet() const { return m_optionVersionHasBeenSet; } /** *

The version of the option.

*/ inline void SetOptionVersion(const Aws::String& value) { m_optionVersionHasBeenSet = true; m_optionVersion = value; } /** *

The version of the option.

*/ inline void SetOptionVersion(Aws::String&& value) { m_optionVersionHasBeenSet = true; m_optionVersion = std::move(value); } /** *

The version of the option.

*/ inline void SetOptionVersion(const char* value) { m_optionVersionHasBeenSet = true; m_optionVersion.assign(value); } /** *

The version of the option.

*/ inline Option& WithOptionVersion(const Aws::String& value) { SetOptionVersion(value); return *this;} /** *

The version of the option.

*/ inline Option& WithOptionVersion(Aws::String&& value) { SetOptionVersion(std::move(value)); return *this;} /** *

The version of the option.

*/ inline Option& WithOptionVersion(const char* value) { SetOptionVersion(value); return *this;} /** *

The option settings for this option.

*/ inline const Aws::Vector& GetOptionSettings() const{ return m_optionSettings; } /** *

The option settings for this option.

*/ inline bool OptionSettingsHasBeenSet() const { return m_optionSettingsHasBeenSet; } /** *

The option settings for this option.

*/ inline void SetOptionSettings(const Aws::Vector& value) { m_optionSettingsHasBeenSet = true; m_optionSettings = value; } /** *

The option settings for this option.

*/ inline void SetOptionSettings(Aws::Vector&& value) { m_optionSettingsHasBeenSet = true; m_optionSettings = std::move(value); } /** *

The option settings for this option.

*/ inline Option& WithOptionSettings(const Aws::Vector& value) { SetOptionSettings(value); return *this;} /** *

The option settings for this option.

*/ inline Option& WithOptionSettings(Aws::Vector&& value) { SetOptionSettings(std::move(value)); return *this;} /** *

The option settings for this option.

*/ inline Option& AddOptionSettings(const OptionSetting& value) { m_optionSettingsHasBeenSet = true; m_optionSettings.push_back(value); return *this; } /** *

The option settings for this option.

*/ inline Option& AddOptionSettings(OptionSetting&& value) { m_optionSettingsHasBeenSet = true; m_optionSettings.push_back(std::move(value)); return *this; } /** *

If the option requires access to a port, then this DB security group allows * access to the port.

*/ inline const Aws::Vector& GetDBSecurityGroupMemberships() const{ return m_dBSecurityGroupMemberships; } /** *

If the option requires access to a port, then this DB security group allows * access to the port.

*/ inline bool DBSecurityGroupMembershipsHasBeenSet() const { return m_dBSecurityGroupMembershipsHasBeenSet; } /** *

If the option requires access to a port, then this DB security group allows * access to the port.

*/ inline void SetDBSecurityGroupMemberships(const Aws::Vector& value) { m_dBSecurityGroupMembershipsHasBeenSet = true; m_dBSecurityGroupMemberships = value; } /** *

If the option requires access to a port, then this DB security group allows * access to the port.

*/ inline void SetDBSecurityGroupMemberships(Aws::Vector&& value) { m_dBSecurityGroupMembershipsHasBeenSet = true; m_dBSecurityGroupMemberships = std::move(value); } /** *

If the option requires access to a port, then this DB security group allows * access to the port.

*/ inline Option& WithDBSecurityGroupMemberships(const Aws::Vector& value) { SetDBSecurityGroupMemberships(value); return *this;} /** *

If the option requires access to a port, then this DB security group allows * access to the port.

*/ inline Option& WithDBSecurityGroupMemberships(Aws::Vector&& value) { SetDBSecurityGroupMemberships(std::move(value)); return *this;} /** *

If the option requires access to a port, then this DB security group allows * access to the port.

*/ inline Option& AddDBSecurityGroupMemberships(const DBSecurityGroupMembership& value) { m_dBSecurityGroupMembershipsHasBeenSet = true; m_dBSecurityGroupMemberships.push_back(value); return *this; } /** *

If the option requires access to a port, then this DB security group allows * access to the port.

*/ inline Option& AddDBSecurityGroupMemberships(DBSecurityGroupMembership&& value) { m_dBSecurityGroupMembershipsHasBeenSet = true; m_dBSecurityGroupMemberships.push_back(std::move(value)); return *this; } /** *

If the option requires access to a port, then this VPC security group allows * access to the port.

*/ inline const Aws::Vector& GetVpcSecurityGroupMemberships() const{ return m_vpcSecurityGroupMemberships; } /** *

If the option requires access to a port, then this VPC security group allows * access to the port.

*/ inline bool VpcSecurityGroupMembershipsHasBeenSet() const { return m_vpcSecurityGroupMembershipsHasBeenSet; } /** *

If the option requires access to a port, then this VPC security group allows * access to the port.

*/ inline void SetVpcSecurityGroupMemberships(const Aws::Vector& value) { m_vpcSecurityGroupMembershipsHasBeenSet = true; m_vpcSecurityGroupMemberships = value; } /** *

If the option requires access to a port, then this VPC security group allows * access to the port.

*/ inline void SetVpcSecurityGroupMemberships(Aws::Vector&& value) { m_vpcSecurityGroupMembershipsHasBeenSet = true; m_vpcSecurityGroupMemberships = std::move(value); } /** *

If the option requires access to a port, then this VPC security group allows * access to the port.

*/ inline Option& WithVpcSecurityGroupMemberships(const Aws::Vector& value) { SetVpcSecurityGroupMemberships(value); return *this;} /** *

If the option requires access to a port, then this VPC security group allows * access to the port.

*/ inline Option& WithVpcSecurityGroupMemberships(Aws::Vector&& value) { SetVpcSecurityGroupMemberships(std::move(value)); return *this;} /** *

If the option requires access to a port, then this VPC security group allows * access to the port.

*/ inline Option& AddVpcSecurityGroupMemberships(const VpcSecurityGroupMembership& value) { m_vpcSecurityGroupMembershipsHasBeenSet = true; m_vpcSecurityGroupMemberships.push_back(value); return *this; } /** *

If the option requires access to a port, then this VPC security group allows * access to the port.

*/ inline Option& AddVpcSecurityGroupMemberships(VpcSecurityGroupMembership&& value) { m_vpcSecurityGroupMembershipsHasBeenSet = true; m_vpcSecurityGroupMemberships.push_back(std::move(value)); return *this; } private: Aws::String m_optionName; bool m_optionNameHasBeenSet = false; Aws::String m_optionDescription; bool m_optionDescriptionHasBeenSet = false; bool m_persistent; bool m_persistentHasBeenSet = false; bool m_permanent; bool m_permanentHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; Aws::String m_optionVersion; bool m_optionVersionHasBeenSet = false; Aws::Vector m_optionSettings; bool m_optionSettingsHasBeenSet = false; Aws::Vector m_dBSecurityGroupMemberships; bool m_dBSecurityGroupMembershipsHasBeenSet = false; Aws::Vector m_vpcSecurityGroupMemberships; bool m_vpcSecurityGroupMembershipsHasBeenSet = false; }; } // namespace Model } // namespace RDS } // namespace Aws