/* * Copyright 2012-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.rds.model; import java.io.Serializable; import javax.annotation.Generated; /** * <p> * Available option. * </p> * * @see <a href="http://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionGroupOption" target="_top">AWS API * Documentation</a> */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class OptionGroupOption implements Serializable, Cloneable { /** * <p> * The name of the option. * </p> */ private String name; /** * <p> * The description of the option. * </p> */ private String description; /** * <p> * The name of the engine that this option can be applied to. * </p> */ private String engineName; /** * <p> * Indicates the major engine version that the option is available for. * </p> */ private String majorEngineVersion; /** * <p> * The minimum required engine version for the option to be applied. * </p> */ private String minimumRequiredMinorEngineVersion; /** * <p> * Specifies whether the option requires a port. * </p> */ private Boolean portRequired; /** * <p> * If the option requires a port, specifies the default port for the option. * </p> */ private Integer defaultPort; /** * <p> * The options that are prerequisites for this option. * </p> */ private com.amazonaws.internal.SdkInternalList<String> optionsDependedOn; /** * <p> * The options that conflict with this option. * </p> */ private com.amazonaws.internal.SdkInternalList<String> optionsConflictsWith; /** * <p> * 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. * </p> */ private Boolean persistent; /** * <p> * 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. * </p> */ private Boolean permanent; /** * <p> * The option settings that are available (and the default value) for each option in an option group. * </p> */ private com.amazonaws.internal.SdkInternalList<OptionGroupOptionSetting> optionGroupOptionSettings; /** * <p> * The versions that are available for the option. * </p> */ private com.amazonaws.internal.SdkInternalList<OptionVersion> optionGroupOptionVersions; /** * <p> * The name of the option. * </p> * * @param name * The name of the option. */ public void setName(String name) { this.name = name; } /** * <p> * The name of the option. * </p> * * @return The name of the option. */ public String getName() { return this.name; } /** * <p> * The name of the option. * </p> * * @param name * The name of the option. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withName(String name) { setName(name); return this; } /** * <p> * The description of the option. * </p> * * @param description * The description of the option. */ public void setDescription(String description) { this.description = description; } /** * <p> * The description of the option. * </p> * * @return The description of the option. */ public String getDescription() { return this.description; } /** * <p> * The description of the option. * </p> * * @param description * The description of the option. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withDescription(String description) { setDescription(description); return this; } /** * <p> * The name of the engine that this option can be applied to. * </p> * * @param engineName * The name of the engine that this option can be applied to. */ public void setEngineName(String engineName) { this.engineName = engineName; } /** * <p> * The name of the engine that this option can be applied to. * </p> * * @return The name of the engine that this option can be applied to. */ public String getEngineName() { return this.engineName; } /** * <p> * The name of the engine that this option can be applied to. * </p> * * @param engineName * The name of the engine that this option can be applied to. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withEngineName(String engineName) { setEngineName(engineName); return this; } /** * <p> * Indicates the major engine version that the option is available for. * </p> * * @param majorEngineVersion * Indicates the major engine version that the option is available for. */ public void setMajorEngineVersion(String majorEngineVersion) { this.majorEngineVersion = majorEngineVersion; } /** * <p> * Indicates the major engine version that the option is available for. * </p> * * @return Indicates the major engine version that the option is available for. */ public String getMajorEngineVersion() { return this.majorEngineVersion; } /** * <p> * Indicates the major engine version that the option is available for. * </p> * * @param majorEngineVersion * Indicates the major engine version that the option is available for. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withMajorEngineVersion(String majorEngineVersion) { setMajorEngineVersion(majorEngineVersion); return this; } /** * <p> * The minimum required engine version for the option to be applied. * </p> * * @param minimumRequiredMinorEngineVersion * The minimum required engine version for the option to be applied. */ public void setMinimumRequiredMinorEngineVersion(String minimumRequiredMinorEngineVersion) { this.minimumRequiredMinorEngineVersion = minimumRequiredMinorEngineVersion; } /** * <p> * The minimum required engine version for the option to be applied. * </p> * * @return The minimum required engine version for the option to be applied. */ public String getMinimumRequiredMinorEngineVersion() { return this.minimumRequiredMinorEngineVersion; } /** * <p> * The minimum required engine version for the option to be applied. * </p> * * @param minimumRequiredMinorEngineVersion * The minimum required engine version for the option to be applied. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withMinimumRequiredMinorEngineVersion(String minimumRequiredMinorEngineVersion) { setMinimumRequiredMinorEngineVersion(minimumRequiredMinorEngineVersion); return this; } /** * <p> * Specifies whether the option requires a port. * </p> * * @param portRequired * Specifies whether the option requires a port. */ public void setPortRequired(Boolean portRequired) { this.portRequired = portRequired; } /** * <p> * Specifies whether the option requires a port. * </p> * * @return Specifies whether the option requires a port. */ public Boolean getPortRequired() { return this.portRequired; } /** * <p> * Specifies whether the option requires a port. * </p> * * @param portRequired * Specifies whether the option requires a port. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withPortRequired(Boolean portRequired) { setPortRequired(portRequired); return this; } /** * <p> * Specifies whether the option requires a port. * </p> * * @return Specifies whether the option requires a port. */ public Boolean isPortRequired() { return this.portRequired; } /** * <p> * If the option requires a port, specifies the default port for the option. * </p> * * @param defaultPort * If the option requires a port, specifies the default port for the option. */ public void setDefaultPort(Integer defaultPort) { this.defaultPort = defaultPort; } /** * <p> * If the option requires a port, specifies the default port for the option. * </p> * * @return If the option requires a port, specifies the default port for the option. */ public Integer getDefaultPort() { return this.defaultPort; } /** * <p> * If the option requires a port, specifies the default port for the option. * </p> * * @param defaultPort * If the option requires a port, specifies the default port for the option. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withDefaultPort(Integer defaultPort) { setDefaultPort(defaultPort); return this; } /** * <p> * The options that are prerequisites for this option. * </p> * * @return The options that are prerequisites for this option. */ public java.util.List<String> getOptionsDependedOn() { if (optionsDependedOn == null) { optionsDependedOn = new com.amazonaws.internal.SdkInternalList<String>(); } return optionsDependedOn; } /** * <p> * The options that are prerequisites for this option. * </p> * * @param optionsDependedOn * The options that are prerequisites for this option. */ public void setOptionsDependedOn(java.util.Collection<String> optionsDependedOn) { if (optionsDependedOn == null) { this.optionsDependedOn = null; return; } this.optionsDependedOn = new com.amazonaws.internal.SdkInternalList<String>(optionsDependedOn); } /** * <p> * The options that are prerequisites for this option. * </p> * <p> * <b>NOTE:</b> This method appends the values to the existing list (if any). Use * {@link #setOptionsDependedOn(java.util.Collection)} or {@link #withOptionsDependedOn(java.util.Collection)} if * you want to override the existing values. * </p> * * @param optionsDependedOn * The options that are prerequisites for this option. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withOptionsDependedOn(String... optionsDependedOn) { if (this.optionsDependedOn == null) { setOptionsDependedOn(new com.amazonaws.internal.SdkInternalList<String>(optionsDependedOn.length)); } for (String ele : optionsDependedOn) { this.optionsDependedOn.add(ele); } return this; } /** * <p> * The options that are prerequisites for this option. * </p> * * @param optionsDependedOn * The options that are prerequisites for this option. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withOptionsDependedOn(java.util.Collection<String> optionsDependedOn) { setOptionsDependedOn(optionsDependedOn); return this; } /** * <p> * The options that conflict with this option. * </p> * * @return The options that conflict with this option. */ public java.util.List<String> getOptionsConflictsWith() { if (optionsConflictsWith == null) { optionsConflictsWith = new com.amazonaws.internal.SdkInternalList<String>(); } return optionsConflictsWith; } /** * <p> * The options that conflict with this option. * </p> * * @param optionsConflictsWith * The options that conflict with this option. */ public void setOptionsConflictsWith(java.util.Collection<String> optionsConflictsWith) { if (optionsConflictsWith == null) { this.optionsConflictsWith = null; return; } this.optionsConflictsWith = new com.amazonaws.internal.SdkInternalList<String>(optionsConflictsWith); } /** * <p> * The options that conflict with this option. * </p> * <p> * <b>NOTE:</b> This method appends the values to the existing list (if any). Use * {@link #setOptionsConflictsWith(java.util.Collection)} or {@link #withOptionsConflictsWith(java.util.Collection)} * if you want to override the existing values. * </p> * * @param optionsConflictsWith * The options that conflict with this option. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withOptionsConflictsWith(String... optionsConflictsWith) { if (this.optionsConflictsWith == null) { setOptionsConflictsWith(new com.amazonaws.internal.SdkInternalList<String>(optionsConflictsWith.length)); } for (String ele : optionsConflictsWith) { this.optionsConflictsWith.add(ele); } return this; } /** * <p> * The options that conflict with this option. * </p> * * @param optionsConflictsWith * The options that conflict with this option. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withOptionsConflictsWith(java.util.Collection<String> optionsConflictsWith) { setOptionsConflictsWith(optionsConflictsWith); return this; } /** * <p> * 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. * </p> * * @param 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. */ public void setPersistent(Boolean persistent) { this.persistent = persistent; } /** * <p> * 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. * </p> * * @return 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. */ public Boolean getPersistent() { return this.persistent; } /** * <p> * 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. * </p> * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withPersistent(Boolean persistent) { setPersistent(persistent); return this; } /** * <p> * 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. * </p> * * @return 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. */ public Boolean isPersistent() { return this.persistent; } /** * <p> * 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. * </p> * * @param 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. */ public void setPermanent(Boolean permanent) { this.permanent = permanent; } /** * <p> * 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. * </p> * * @return 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. */ public Boolean getPermanent() { return this.permanent; } /** * <p> * 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. * </p> * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withPermanent(Boolean permanent) { setPermanent(permanent); return this; } /** * <p> * 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. * </p> * * @return 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. */ public Boolean isPermanent() { return this.permanent; } /** * <p> * The option settings that are available (and the default value) for each option in an option group. * </p> * * @return The option settings that are available (and the default value) for each option in an option group. */ public java.util.List<OptionGroupOptionSetting> getOptionGroupOptionSettings() { if (optionGroupOptionSettings == null) { optionGroupOptionSettings = new com.amazonaws.internal.SdkInternalList<OptionGroupOptionSetting>(); } return optionGroupOptionSettings; } /** * <p> * The option settings that are available (and the default value) for each option in an option group. * </p> * * @param optionGroupOptionSettings * The option settings that are available (and the default value) for each option in an option group. */ public void setOptionGroupOptionSettings(java.util.Collection<OptionGroupOptionSetting> optionGroupOptionSettings) { if (optionGroupOptionSettings == null) { this.optionGroupOptionSettings = null; return; } this.optionGroupOptionSettings = new com.amazonaws.internal.SdkInternalList<OptionGroupOptionSetting>(optionGroupOptionSettings); } /** * <p> * The option settings that are available (and the default value) for each option in an option group. * </p> * <p> * <b>NOTE:</b> This method appends the values to the existing list (if any). Use * {@link #setOptionGroupOptionSettings(java.util.Collection)} or * {@link #withOptionGroupOptionSettings(java.util.Collection)} if you want to override the existing values. * </p> * * @param optionGroupOptionSettings * The option settings that are available (and the default value) for each option in an option group. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withOptionGroupOptionSettings(OptionGroupOptionSetting... optionGroupOptionSettings) { if (this.optionGroupOptionSettings == null) { setOptionGroupOptionSettings(new com.amazonaws.internal.SdkInternalList<OptionGroupOptionSetting>(optionGroupOptionSettings.length)); } for (OptionGroupOptionSetting ele : optionGroupOptionSettings) { this.optionGroupOptionSettings.add(ele); } return this; } /** * <p> * The option settings that are available (and the default value) for each option in an option group. * </p> * * @param optionGroupOptionSettings * The option settings that are available (and the default value) for each option in an option group. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withOptionGroupOptionSettings(java.util.Collection<OptionGroupOptionSetting> optionGroupOptionSettings) { setOptionGroupOptionSettings(optionGroupOptionSettings); return this; } /** * <p> * The versions that are available for the option. * </p> * * @return The versions that are available for the option. */ public java.util.List<OptionVersion> getOptionGroupOptionVersions() { if (optionGroupOptionVersions == null) { optionGroupOptionVersions = new com.amazonaws.internal.SdkInternalList<OptionVersion>(); } return optionGroupOptionVersions; } /** * <p> * The versions that are available for the option. * </p> * * @param optionGroupOptionVersions * The versions that are available for the option. */ public void setOptionGroupOptionVersions(java.util.Collection<OptionVersion> optionGroupOptionVersions) { if (optionGroupOptionVersions == null) { this.optionGroupOptionVersions = null; return; } this.optionGroupOptionVersions = new com.amazonaws.internal.SdkInternalList<OptionVersion>(optionGroupOptionVersions); } /** * <p> * The versions that are available for the option. * </p> * <p> * <b>NOTE:</b> This method appends the values to the existing list (if any). Use * {@link #setOptionGroupOptionVersions(java.util.Collection)} or * {@link #withOptionGroupOptionVersions(java.util.Collection)} if you want to override the existing values. * </p> * * @param optionGroupOptionVersions * The versions that are available for the option. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withOptionGroupOptionVersions(OptionVersion... optionGroupOptionVersions) { if (this.optionGroupOptionVersions == null) { setOptionGroupOptionVersions(new com.amazonaws.internal.SdkInternalList<OptionVersion>(optionGroupOptionVersions.length)); } for (OptionVersion ele : optionGroupOptionVersions) { this.optionGroupOptionVersions.add(ele); } return this; } /** * <p> * The versions that are available for the option. * </p> * * @param optionGroupOptionVersions * The versions that are available for the option. * @return Returns a reference to this object so that method calls can be chained together. */ public OptionGroupOption withOptionGroupOptionVersions(java.util.Collection<OptionVersion> optionGroupOptionVersions) { setOptionGroupOptionVersions(optionGroupOptionVersions); return this; } /** * Returns a string representation of this object; useful for testing and debugging. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getName() != null) sb.append("Name: ").append(getName()).append(","); if (getDescription() != null) sb.append("Description: ").append(getDescription()).append(","); if (getEngineName() != null) sb.append("EngineName: ").append(getEngineName()).append(","); if (getMajorEngineVersion() != null) sb.append("MajorEngineVersion: ").append(getMajorEngineVersion()).append(","); if (getMinimumRequiredMinorEngineVersion() != null) sb.append("MinimumRequiredMinorEngineVersion: ").append(getMinimumRequiredMinorEngineVersion()).append(","); if (getPortRequired() != null) sb.append("PortRequired: ").append(getPortRequired()).append(","); if (getDefaultPort() != null) sb.append("DefaultPort: ").append(getDefaultPort()).append(","); if (getOptionsDependedOn() != null) sb.append("OptionsDependedOn: ").append(getOptionsDependedOn()).append(","); if (getOptionsConflictsWith() != null) sb.append("OptionsConflictsWith: ").append(getOptionsConflictsWith()).append(","); if (getPersistent() != null) sb.append("Persistent: ").append(getPersistent()).append(","); if (getPermanent() != null) sb.append("Permanent: ").append(getPermanent()).append(","); if (getOptionGroupOptionSettings() != null) sb.append("OptionGroupOptionSettings: ").append(getOptionGroupOptionSettings()).append(","); if (getOptionGroupOptionVersions() != null) sb.append("OptionGroupOptionVersions: ").append(getOptionGroupOptionVersions()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof OptionGroupOption == false) return false; OptionGroupOption other = (OptionGroupOption) obj; if (other.getName() == null ^ this.getName() == null) return false; if (other.getName() != null && other.getName().equals(this.getName()) == false) return false; if (other.getDescription() == null ^ this.getDescription() == null) return false; if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false) return false; if (other.getEngineName() == null ^ this.getEngineName() == null) return false; if (other.getEngineName() != null && other.getEngineName().equals(this.getEngineName()) == false) return false; if (other.getMajorEngineVersion() == null ^ this.getMajorEngineVersion() == null) return false; if (other.getMajorEngineVersion() != null && other.getMajorEngineVersion().equals(this.getMajorEngineVersion()) == false) return false; if (other.getMinimumRequiredMinorEngineVersion() == null ^ this.getMinimumRequiredMinorEngineVersion() == null) return false; if (other.getMinimumRequiredMinorEngineVersion() != null && other.getMinimumRequiredMinorEngineVersion().equals(this.getMinimumRequiredMinorEngineVersion()) == false) return false; if (other.getPortRequired() == null ^ this.getPortRequired() == null) return false; if (other.getPortRequired() != null && other.getPortRequired().equals(this.getPortRequired()) == false) return false; if (other.getDefaultPort() == null ^ this.getDefaultPort() == null) return false; if (other.getDefaultPort() != null && other.getDefaultPort().equals(this.getDefaultPort()) == false) return false; if (other.getOptionsDependedOn() == null ^ this.getOptionsDependedOn() == null) return false; if (other.getOptionsDependedOn() != null && other.getOptionsDependedOn().equals(this.getOptionsDependedOn()) == false) return false; if (other.getOptionsConflictsWith() == null ^ this.getOptionsConflictsWith() == null) return false; if (other.getOptionsConflictsWith() != null && other.getOptionsConflictsWith().equals(this.getOptionsConflictsWith()) == false) return false; if (other.getPersistent() == null ^ this.getPersistent() == null) return false; if (other.getPersistent() != null && other.getPersistent().equals(this.getPersistent()) == false) return false; if (other.getPermanent() == null ^ this.getPermanent() == null) return false; if (other.getPermanent() != null && other.getPermanent().equals(this.getPermanent()) == false) return false; if (other.getOptionGroupOptionSettings() == null ^ this.getOptionGroupOptionSettings() == null) return false; if (other.getOptionGroupOptionSettings() != null && other.getOptionGroupOptionSettings().equals(this.getOptionGroupOptionSettings()) == false) return false; if (other.getOptionGroupOptionVersions() == null ^ this.getOptionGroupOptionVersions() == null) return false; if (other.getOptionGroupOptionVersions() != null && other.getOptionGroupOptionVersions().equals(this.getOptionGroupOptionVersions()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getEngineName() == null) ? 0 : getEngineName().hashCode()); hashCode = prime * hashCode + ((getMajorEngineVersion() == null) ? 0 : getMajorEngineVersion().hashCode()); hashCode = prime * hashCode + ((getMinimumRequiredMinorEngineVersion() == null) ? 0 : getMinimumRequiredMinorEngineVersion().hashCode()); hashCode = prime * hashCode + ((getPortRequired() == null) ? 0 : getPortRequired().hashCode()); hashCode = prime * hashCode + ((getDefaultPort() == null) ? 0 : getDefaultPort().hashCode()); hashCode = prime * hashCode + ((getOptionsDependedOn() == null) ? 0 : getOptionsDependedOn().hashCode()); hashCode = prime * hashCode + ((getOptionsConflictsWith() == null) ? 0 : getOptionsConflictsWith().hashCode()); hashCode = prime * hashCode + ((getPersistent() == null) ? 0 : getPersistent().hashCode()); hashCode = prime * hashCode + ((getPermanent() == null) ? 0 : getPermanent().hashCode()); hashCode = prime * hashCode + ((getOptionGroupOptionSettings() == null) ? 0 : getOptionGroupOptionSettings().hashCode()); hashCode = prime * hashCode + ((getOptionGroupOptionVersions() == null) ? 0 : getOptionGroupOptionVersions().hashCode()); return hashCode; } @Override public OptionGroupOption clone() { try { return (OptionGroupOption) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }