com.amazonaws.services.rds.model.ModifyDBInstanceRequest Maven / Gradle / Ivy
Show all versions of aws-java-sdk-osgi Show documentation
/*
 * Copyright 2010-2016 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 com.amazonaws.AmazonWebServiceRequest;
/**
 * 
 */
public class ModifyDBInstanceRequest extends AmazonWebServiceRequest implements
        Serializable, Cloneable {
    /**
     * 
     * The DB instance identifier. This value is stored as a lowercase string.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be the identifier for an existing DB instance
     * 
     *  
     * - 
     * 
     * Must contain from 1 to 63 alphanumeric characters or hyphens
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     */
    private String dBInstanceIdentifier;
    /**
     * 
     * The new storage capacity of the RDS instance. Changing this setting does
     * not result in an outage and the change is applied during the next
     * maintenance window unless ApplyImmediately is set to
     * true for this request.
     * 
     * 
     * MySQL
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * MariaDB
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * PostgreSQL
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * Oracle
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 10-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * SQL Server
     * 
     * 
     * Cannot be modified.
     * 
     * 
     * If you choose to migrate your DB instance from using standard storage to
     * using Provisioned IOPS, or from using Provisioned IOPS to using standard
     * storage, the process can take time. The duration of the migration depends
     * on several factors such as database load, storage size, storage type
     * (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and
     * the number of prior scale storage operations. Typical migration times are
     * under 24 hours, but the process can take up to several days in some
     * cases. During the migration, the DB instance will be available for use,
     * but might experience performance degradation. While the migration takes
     * place, nightly backups for the instance will be suspended. No other
     * Amazon RDS operations can take place for the instance, including
     * modifying the instance, rebooting the instance, deleting the instance,
     * creating a Read Replica for the instance, and creating a DB snapshot of
     * the instance.
     * 
     */
    private Integer allocatedStorage;
    /**
     * 
     * The new compute and memory capacity of the DB instance. To determine the
     * instance classes that are available for a particular DB engine, use the
     * DescribeOrderableDBInstanceOptions action.
     * 
     * 
     * Passing a value for this setting causes an outage during the change and
     * is applied during the next maintenance window, unless
     * ApplyImmediately is specified as true for this
     * request.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values:
     * db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large
     * 
     */
    private String dBInstanceClass;
    /**
     * 
     * A list of DB security groups to authorize on this DB instance. Changing
     * this setting does not result in an outage and the change is
     * asynchronously applied as soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be 1 to 255 alphanumeric characters
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     */
    private com.amazonaws.internal.SdkInternalList dBSecurityGroups;
    /**
     * 
     * A list of EC2 VPC security groups to authorize on this DB instance. This
     * change is asynchronously applied as soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be 1 to 255 alphanumeric characters
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     */
    private com.amazonaws.internal.SdkInternalList vpcSecurityGroupIds;
    /**
     * 
     * Specifies whether the modifications in this request and any pending
     * modifications are asynchronously applied as soon as possible, regardless
     * of the PreferredMaintenanceWindow setting for the DB
     * instance.
     * 
     * 
     * If this parameter is set to false, changes to the DB
     * instance are applied during the next maintenance window. Some parameter
     * changes can cause an outage and will be applied on the next call to
     * RebootDBInstance, or the next failure reboot. Review the table of
     * parameters in Modifying a DB Instance and Using the Apply Immediately Parameter to
     * see the impact that setting ApplyImmediately to
     * true or false has for each modified parameter
     * and to determine when the changes will be applied.
     * 
     * 
     * Default: false
     * 
     */
    private Boolean applyImmediately;
    /**
     * 
     * The new password for the DB instance master user. Can be any printable
     * ASCII character except "/", """, or "@".
     * 
     * 
     * Changing this parameter does not result in an outage and the change is
     * asynchronously applied as soon as possible. Between the time of the
     * request and the completion of the request, the
     * MasterUserPassword element exists in the
     * PendingModifiedValues element of the operation response.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: Must be 8 to 41 alphanumeric characters (MySQL, MariaDB, and
     * Amazon Aurora), 8 to 30 alphanumeric characters (Oracle), or 8 to 128
     * alphanumeric characters (SQL Server).
     * 
     * 
     * 
     * Amazon RDS API actions never return the password, so this action provides
     * a way to regain access to a primary instance user if the password is
     * lost. This includes restoring privileges that might have been
     * accidentally revoked.
     * 
     *  
     */
    private String masterUserPassword;
    /**
     * 
     * The name of the DB parameter group to apply to the DB instance. Changing
     * this setting does not result in an outage. The parameter group name
     * itself is changed immediately, but the actual parameter changes are not
     * applied until you reboot the instance without failover. The db instance
     * will NOT be rebooted automatically and the parameter changes will NOT be
     * applied during the next maintenance window.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: The DB parameter group must be in the same DB parameter
     * group family as this DB instance.
     * 
     */
    private String dBParameterGroupName;
    /**
     * 
     * The number of days to retain automated backups. Setting this parameter to
     * a positive number enables backups. Setting this parameter to 0 disables
     * automated backups.
     * 
     * 
     * Changing this parameter can result in an outage if you change from 0 to a
     * non-zero value or from a non-zero value to 0. These changes are applied
     * during the next maintenance window unless the
     * ApplyImmediately parameter is set to true for
     * this request. If you change the parameter from one non-zero value to
     * another non-zero value, the change is asynchronously applied as soon as
     * possible.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be a value from 0 to 35
     * 
     *  
     * - 
     * 
     * Can be specified for a MySQL Read Replica only if the source is running
     * MySQL 5.6
     * 
     *  
     * - 
     * 
     * Can be specified for a PostgreSQL Read Replica only if the source is
     * running PostgreSQL 9.3.5
     * 
     *  
     * - 
     * 
     * Cannot be set to 0 if the DB instance is a source to Read Replicas
     * 
     *  
     * 
     */
    private Integer backupRetentionPeriod;
    /**
     * 
     * The daily time range during which automated backups are created if
     * automated backups are enabled, as determined by the
     * BackupRetentionPeriod parameter. Changing this parameter
     * does not result in an outage and the change is asynchronously applied as
     * soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be in the format hh24:mi-hh24:mi
     * 
     *  
     * - 
     * 
     * Times should be in Universal Time Coordinated (UTC)
     * 
     *  
     * - 
     * 
     * Must not conflict with the preferred maintenance window
     * 
     *  
     * - 
     * 
     * Must be at least 30 minutes
     * 
     *  
     * 
     */
    private String preferredBackupWindow;
    /**
     * 
     * The weekly time range (in UTC) during which system maintenance can occur,
     * which might result in an outage. Changing this parameter does not result
     * in an outage, except in the following situation, and the change is
     * asynchronously applied as soon as possible. If there are pending actions
     * that cause a reboot, and the maintenance window is changed to include the
     * current time, then changing this parameter will cause a reboot of the DB
     * instance. If moving this window to the current time, there must be at
     * least 30 minutes between the current time and end of the window to ensure
     * pending changes are applied.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Format: ddd:hh24:mi-ddd:hh24:mi
     * 
     * 
     * Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
     * 
     * 
     * Constraints: Must be at least 30 minutes
     * 
     */
    private String preferredMaintenanceWindow;
    /**
     * 
     * Specifies if the DB instance is a Multi-AZ deployment. Changing this
     * parameter does not result in an outage and the change is applied during
     * the next maintenance window unless the ApplyImmediately
     * parameter is set to true for this request.
     * 
     * 
     * Constraints: Cannot be specified if the DB instance is a Read Replica.
     * This parameter cannot be used with SQL Server DB instances. Multi-AZ for
     * SQL Server DB instances is set using the Mirroring option in an option
     * group associated with the DB instance.
     * 
     */
    private Boolean multiAZ;
    /**
     * 
     * The version number of the database engine to upgrade to. Changing this
     * parameter results in an outage and the change is applied during the next
     * maintenance window unless the ApplyImmediately parameter is
     * set to true for this request.
     * 
     * 
     * For major version upgrades, if a non-default DB parameter group is
     * currently in use, a new DB parameter group in the DB parameter group
     * family for the new engine version must be specified. The new DB parameter
     * group can be the default for that DB parameter group family.
     * 
     * 
     * For a list of valid engine versions, see CreateDBInstance.
     * 
     */
    private String engineVersion;
    /**
     * 
     * Indicates that major version upgrades are allowed. Changing this
     * parameter does not result in an outage and the change is asynchronously
     * applied as soon as possible.
     * 
     * 
     * Constraints: This parameter must be set to true when specifying a value
     * for the EngineVersion parameter that is a different major version than
     * the DB instance's current version.
     * 
     */
    private Boolean allowMajorVersionUpgrade;
    /**
     * 
     * Indicates that minor version upgrades will be applied automatically to
     * the DB instance during the maintenance window. Changing this parameter
     * does not result in an outage except in the following case and the change
     * is asynchronously applied as soon as possible. An outage will result if
     * this parameter is set to true during the maintenance window,
     * and a newer minor version is available, and RDS has enabled auto patching
     * for that engine version.
     * 
     */
    private Boolean autoMinorVersionUpgrade;
    /**
     * 
     * The new Provisioned IOPS (I/O operations per second) value for the RDS
     * instance. Changing this setting does not result in an outage and the
     * change is applied during the next maintenance window unless the
     * ApplyImmediately parameter is set to true for
     * this request.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value. If
     * you are migrating from Provisioned IOPS to standard storage, set this
     * value to 0. The DB instance will require a reboot for the change in
     * storage type to take effect.
     * 
     * 
     * SQL Server
     * 
     * 
     * Setting the IOPS value for the SQL Server database engine is not
     * supported.
     * 
     * 
     * Type: Integer
     * 
     * 
     * If you choose to migrate your DB instance from using standard storage to
     * using Provisioned IOPS, or from using Provisioned IOPS to using standard
     * storage, the process can take time. The duration of the migration depends
     * on several factors such as database load, storage size, storage type
     * (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and
     * the number of prior scale storage operations. Typical migration times are
     * under 24 hours, but the process can take up to several days in some
     * cases. During the migration, the DB instance will be available for use,
     * but might experience performance degradation. While the migration takes
     * place, nightly backups for the instance will be suspended. No other
     * Amazon RDS operations can take place for the instance, including
     * modifying the instance, rebooting the instance, deleting the instance,
     * creating a Read Replica for the instance, and creating a DB snapshot of
     * the instance.
     * 
     */
    private Integer iops;
    /**
     * 
     * Indicates that the DB instance should be associated with the specified
     * option group. Changing this parameter does not result in an outage except
     * in the following case and the change is applied during the next
     * maintenance window unless the ApplyImmediately parameter is
     * set to true for this request. If the parameter change
     * results in an option group that enables OEM, this change can cause a
     * brief (sub-second) period during which new connections are rejected but
     * existing connections are not interrupted.
     * 
     * 
     * Permanent options, such as the TDE option for Oracle Advanced Security
     * TDE, cannot be removed from an option group, and that option group cannot
     * be removed from a DB instance once it is associated with a DB instance
     * 
     */
    private String optionGroupName;
    /**
     * 
     * The new DB instance identifier for the DB instance when renaming a DB
     * instance. When you change the DB instance identifier, an instance reboot
     * will occur immediately if you set Apply Immediately to true,
     * or will occur during the next maintenance window if
     * Apply Immediately to false. This value is stored as a
     * lowercase string.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must contain from 1 to 63 alphanumeric characters or hyphens
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     */
    private String newDBInstanceIdentifier;
    /**
     * 
     * Specifies the storage type to be associated with the DB instance.
     * 
     * 
     * Valid values: standard | gp2 | io1
     * 
     * 
     * If you specify io1, you must also include a value for the
     * Iops parameter.
     * 
     * 
     * Default: io1 if the Iops parameter is
     * specified; otherwise standard
     * 
     */
    private String storageType;
    /**
     * 
     * The ARN from the Key Store with which to associate the instance for TDE
     * encryption.
     * 
     */
    private String tdeCredentialArn;
    /**
     * 
     * The password for the given ARN from the Key Store in order to access the
     * device.
     * 
     */
    private String tdeCredentialPassword;
    /**
     * 
     * Indicates the certificate that needs to be associated with the instance.
     * 
     */
    private String cACertificateIdentifier;
    /**
     * 
     * Specify the Active Directory Domain to move the instance to.
     * 
     * 
     * The specified Active Directory Domain must be created prior to this
     * operation. Currently only a SQL Server instance can be created in a
     * Active Directory Domain.
     * 
     */
    private String domain;
    /**
     * 
     * True to copy all tags from the DB instance to snapshots of the DB
     * instance; otherwise false. The default is false.
     * 
     */
    private Boolean copyTagsToSnapshot;
    /**
     * 
     * The interval, in seconds, between points when Enhanced Monitoring metrics
     * are collected for the DB instance. To disable collecting Enhanced
     * Monitoring metrics, specify 0. The default is 0.
     * 
     * 
     * If MonitoringRoleArn is specified, then you must also set
     * MonitoringInterval to a value other than 0.
     * 
     * 
     * Valid Values: 0, 1, 5, 10, 15, 30, 60
     * 
     */
    private Integer monitoringInterval;
    /**
     * 
     * The port number on which the database accepts connections.
     * 
     * 
     * The value of the DBPortNumber parameter must not match any
     * of the port values specified for options in the option group for the DB
     * instance.
     * 
     * 
     * Your database will restart when you change the DBPortNumber
     * value regardless of the value of the ApplyImmediately
     * parameter.
     * 
     * 
     * MySQL
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * MariaDB
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * PostgreSQL
     * 
     * 
     * Default: 5432
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * Type: Integer
     * 
     * 
     * Oracle
     * 
     * 
     * Default: 1521
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * SQL Server
     * 
     * 
     * Default: 1433
     * 
     * 
     * Valid Values: 1150-65535 except for 1434,
     * 3389, 47001, 49152, and
     * 49152 through 49156.
     * 
     * 
     * Amazon Aurora
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     */
    private Integer dBPortNumber;
    /**
     * 
     * Boolean value that indicates if the DB instance has a publicly resolvable
     * DNS name. Set to True to make the DB instance
     * Internet-facing with a publicly resolvable DNS name, which resolves to a
     * public IP address. Set to False to make the DB instance
     * internal with a DNS name that resolves to a private IP address.
     * 
     * 
     * PubliclyAccessible only applies to DB instances in a VPC.
     * The DB instance must be part of a public subnet and
     * PubliclyAccessible must be true in order for it to be
     * publicly accessible.
     * 
     * 
     * Changes to the PubliclyAccessible parameter are applied
     * immediately regardless of the value of the ApplyImmediately
     * parameter.
     * 
     * 
     * Default: false
     * 
     */
    private Boolean publiclyAccessible;
    /**
     * 
     * The ARN for the IAM role that permits RDS to send enhanced monitoring
     * metrics to CloudWatch Logs. For example,
     * arn:aws:iam:123456789012:role/emaccess. For information on
     * creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.
     * 
     * 
     * If MonitoringInterval is set to a value other than 0, then
     * you must supply a MonitoringRoleArn value.
     * 
     */
    private String monitoringRoleArn;
    /**
     * 
     * Specify the name of the IAM role to be used when making API calls to the
     * Directory Service.
     * 
     */
    private String domainIAMRoleName;
    /**
     * 
     * A value that specifies the order in which an Aurora Replica is promoted
     * to the primary instance after a failure of the existing primary instance.
     * For more information, see  Fault Tolerance for an Aurora DB Cluster.
     * 
     * 
     * Default: 1
     * 
     * 
     * Valid Values: 0 - 15
     * 
     */
    private Integer promotionTier;
    /**
     * Default constructor for ModifyDBInstanceRequest object. Callers should
     * use the setter or fluent setter (with...) methods to initialize the
     * object after creating it.
     */
    public ModifyDBInstanceRequest() {
    }
    /**
     * Constructs a new ModifyDBInstanceRequest object. Callers should use the
     * setter or fluent setter (with...) methods to initialize any additional
     * object members.
     * 
     * @param dBInstanceIdentifier
     *        The DB instance identifier. This value is stored as a lowercase
     *        string.
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be the identifier for an existing DB instance
     *        
     *         
     *        - 
     *        
     *        Must contain from 1 to 63 alphanumeric characters or hyphens
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     */
    public ModifyDBInstanceRequest(String dBInstanceIdentifier) {
        setDBInstanceIdentifier(dBInstanceIdentifier);
    }
    /**
     * 
     * The DB instance identifier. This value is stored as a lowercase string.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be the identifier for an existing DB instance
     * 
     *  
     * - 
     * 
     * Must contain from 1 to 63 alphanumeric characters or hyphens
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @param dBInstanceIdentifier
     *        The DB instance identifier. This value is stored as a lowercase
     *        string.
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be the identifier for an existing DB instance
     *        
     *         
     *        - 
     *        
     *        Must contain from 1 to 63 alphanumeric characters or hyphens
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     */
    public void setDBInstanceIdentifier(String dBInstanceIdentifier) {
        this.dBInstanceIdentifier = dBInstanceIdentifier;
    }
    /**
     * 
     * The DB instance identifier. This value is stored as a lowercase string.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be the identifier for an existing DB instance
     * 
     *  
     * - 
     * 
     * Must contain from 1 to 63 alphanumeric characters or hyphens
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @return The DB instance identifier. This value is stored as a lowercase
     *         string.
     *         
     *         Constraints:
     *         
     *         
     *         - 
     *         
     *         Must be the identifier for an existing DB instance
     *         
     *          
     *         - 
     *         
     *         Must contain from 1 to 63 alphanumeric characters or hyphens
     *         
     *          
     *         - 
     *         
     *         First character must be a letter
     *         
     *          
     *         - 
     *         
     *         Cannot end with a hyphen or contain two consecutive hyphens
     *         
     *          
     */
    public String getDBInstanceIdentifier() {
        return this.dBInstanceIdentifier;
    }
    /**
     * 
     * The DB instance identifier. This value is stored as a lowercase string.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be the identifier for an existing DB instance
     * 
     *  
     * - 
     * 
     * Must contain from 1 to 63 alphanumeric characters or hyphens
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @param dBInstanceIdentifier
     *        The DB instance identifier. This value is stored as a lowercase
     *        string.
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be the identifier for an existing DB instance
     *        
     *         
     *        - 
     *        
     *        Must contain from 1 to 63 alphanumeric characters or hyphens
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withDBInstanceIdentifier(
            String dBInstanceIdentifier) {
        setDBInstanceIdentifier(dBInstanceIdentifier);
        return this;
    }
    /**
     * 
     * The new storage capacity of the RDS instance. Changing this setting does
     * not result in an outage and the change is applied during the next
     * maintenance window unless ApplyImmediately is set to
     * true for this request.
     * 
     * 
     * MySQL
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * MariaDB
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * PostgreSQL
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * Oracle
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 10-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * SQL Server
     * 
     * 
     * Cannot be modified.
     * 
     * 
     * If you choose to migrate your DB instance from using standard storage to
     * using Provisioned IOPS, or from using Provisioned IOPS to using standard
     * storage, the process can take time. The duration of the migration depends
     * on several factors such as database load, storage size, storage type
     * (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and
     * the number of prior scale storage operations. Typical migration times are
     * under 24 hours, but the process can take up to several days in some
     * cases. During the migration, the DB instance will be available for use,
     * but might experience performance degradation. While the migration takes
     * place, nightly backups for the instance will be suspended. No other
     * Amazon RDS operations can take place for the instance, including
     * modifying the instance, rebooting the instance, deleting the instance,
     * creating a Read Replica for the instance, and creating a DB snapshot of
     * the instance.
     * 
     * 
     * @param allocatedStorage
     *        The new storage capacity of the RDS instance. Changing this
     *        setting does not result in an outage and the change is applied
     *        during the next maintenance window unless
     *        ApplyImmediately is set to true for this
     *        request. 
     *        
     *        MySQL
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Valid Values: 5-6144
     *        
     *        
     *        Constraints: Value supplied must be at least 10% greater than the
     *        current value. Values that are not at least 10% greater than the
     *        existing value are rounded up so that they are 10% greater than
     *        the current value.
     *        
     *        
     *        Type: Integer
     *        
     *        
     *        MariaDB
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Valid Values: 5-6144
     *        
     *        
     *        Constraints: Value supplied must be at least 10% greater than the
     *        current value. Values that are not at least 10% greater than the
     *        existing value are rounded up so that they are 10% greater than
     *        the current value.
     *        
     *        
     *        Type: Integer
     *        
     *        
     *        PostgreSQL
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Valid Values: 5-6144
     *        
     *        
     *        Constraints: Value supplied must be at least 10% greater than the
     *        current value. Values that are not at least 10% greater than the
     *        existing value are rounded up so that they are 10% greater than
     *        the current value.
     *        
     *        
     *        Type: Integer
     *        
     *        
     *        Oracle
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Valid Values: 10-6144
     *        
     *        
     *        Constraints: Value supplied must be at least 10% greater than the
     *        current value. Values that are not at least 10% greater than the
     *        existing value are rounded up so that they are 10% greater than
     *        the current value.
     *        
     *        
     *        SQL Server
     *        
     *        
     *        Cannot be modified.
     *        
     *        
     *        If you choose to migrate your DB instance from using standard
     *        storage to using Provisioned IOPS, or from using Provisioned IOPS
     *        to using standard storage, the process can take time. The duration
     *        of the migration depends on several factors such as database load,
     *        storage size, storage type (standard or Provisioned IOPS), amount
     *        of IOPS provisioned (if any), and the number of prior scale
     *        storage operations. Typical migration times are under 24 hours,
     *        but the process can take up to several days in some cases. During
     *        the migration, the DB instance will be available for use, but
     *        might experience performance degradation. While the migration
     *        takes place, nightly backups for the instance will be suspended.
     *        No other Amazon RDS operations can take place for the instance,
     *        including modifying the instance, rebooting the instance, deleting
     *        the instance, creating a Read Replica for the instance, and
     *        creating a DB snapshot of the instance.
     */
    public void setAllocatedStorage(Integer allocatedStorage) {
        this.allocatedStorage = allocatedStorage;
    }
    /**
     * 
     * The new storage capacity of the RDS instance. Changing this setting does
     * not result in an outage and the change is applied during the next
     * maintenance window unless ApplyImmediately is set to
     * true for this request.
     * 
     * 
     * MySQL
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * MariaDB
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * PostgreSQL
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * Oracle
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 10-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * SQL Server
     * 
     * 
     * Cannot be modified.
     * 
     * 
     * If you choose to migrate your DB instance from using standard storage to
     * using Provisioned IOPS, or from using Provisioned IOPS to using standard
     * storage, the process can take time. The duration of the migration depends
     * on several factors such as database load, storage size, storage type
     * (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and
     * the number of prior scale storage operations. Typical migration times are
     * under 24 hours, but the process can take up to several days in some
     * cases. During the migration, the DB instance will be available for use,
     * but might experience performance degradation. While the migration takes
     * place, nightly backups for the instance will be suspended. No other
     * Amazon RDS operations can take place for the instance, including
     * modifying the instance, rebooting the instance, deleting the instance,
     * creating a Read Replica for the instance, and creating a DB snapshot of
     * the instance.
     * 
     * 
     * @return The new storage capacity of the RDS instance. Changing this
     *         setting does not result in an outage and the change is applied
     *         during the next maintenance window unless
     *         ApplyImmediately is set to true for
     *         this request. 
     *         
     *         MySQL
     *         
     *         
     *         Default: Uses existing setting
     *         
     *         
     *         Valid Values: 5-6144
     *         
     *         
     *         Constraints: Value supplied must be at least 10% greater than the
     *         current value. Values that are not at least 10% greater than the
     *         existing value are rounded up so that they are 10% greater than
     *         the current value.
     *         
     *         
     *         Type: Integer
     *         
     *         
     *         MariaDB
     *         
     *         
     *         Default: Uses existing setting
     *         
     *         
     *         Valid Values: 5-6144
     *         
     *         
     *         Constraints: Value supplied must be at least 10% greater than the
     *         current value. Values that are not at least 10% greater than the
     *         existing value are rounded up so that they are 10% greater than
     *         the current value.
     *         
     *         
     *         Type: Integer
     *         
     *         
     *         PostgreSQL
     *         
     *         
     *         Default: Uses existing setting
     *         
     *         
     *         Valid Values: 5-6144
     *         
     *         
     *         Constraints: Value supplied must be at least 10% greater than the
     *         current value. Values that are not at least 10% greater than the
     *         existing value are rounded up so that they are 10% greater than
     *         the current value.
     *         
     *         
     *         Type: Integer
     *         
     *         
     *         Oracle
     *         
     *         
     *         Default: Uses existing setting
     *         
     *         
     *         Valid Values: 10-6144
     *         
     *         
     *         Constraints: Value supplied must be at least 10% greater than the
     *         current value. Values that are not at least 10% greater than the
     *         existing value are rounded up so that they are 10% greater than
     *         the current value.
     *         
     *         
     *         SQL Server
     *         
     *         
     *         Cannot be modified.
     *         
     *         
     *         If you choose to migrate your DB instance from using standard
     *         storage to using Provisioned IOPS, or from using Provisioned IOPS
     *         to using standard storage, the process can take time. The
     *         duration of the migration depends on several factors such as
     *         database load, storage size, storage type (standard or
     *         Provisioned IOPS), amount of IOPS provisioned (if any), and the
     *         number of prior scale storage operations. Typical migration times
     *         are under 24 hours, but the process can take up to several days
     *         in some cases. During the migration, the DB instance will be
     *         available for use, but might experience performance degradation.
     *         While the migration takes place, nightly backups for the instance
     *         will be suspended. No other Amazon RDS operations can take place
     *         for the instance, including modifying the instance, rebooting the
     *         instance, deleting the instance, creating a Read Replica for the
     *         instance, and creating a DB snapshot of the instance.
     */
    public Integer getAllocatedStorage() {
        return this.allocatedStorage;
    }
    /**
     * 
     * The new storage capacity of the RDS instance. Changing this setting does
     * not result in an outage and the change is applied during the next
     * maintenance window unless ApplyImmediately is set to
     * true for this request.
     * 
     * 
     * MySQL
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * MariaDB
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * PostgreSQL
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 5-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * Type: Integer
     * 
     * 
     * Oracle
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values: 10-6144
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value.
     * 
     * 
     * SQL Server
     * 
     * 
     * Cannot be modified.
     * 
     * 
     * If you choose to migrate your DB instance from using standard storage to
     * using Provisioned IOPS, or from using Provisioned IOPS to using standard
     * storage, the process can take time. The duration of the migration depends
     * on several factors such as database load, storage size, storage type
     * (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and
     * the number of prior scale storage operations. Typical migration times are
     * under 24 hours, but the process can take up to several days in some
     * cases. During the migration, the DB instance will be available for use,
     * but might experience performance degradation. While the migration takes
     * place, nightly backups for the instance will be suspended. No other
     * Amazon RDS operations can take place for the instance, including
     * modifying the instance, rebooting the instance, deleting the instance,
     * creating a Read Replica for the instance, and creating a DB snapshot of
     * the instance.
     * 
     * 
     * @param allocatedStorage
     *        The new storage capacity of the RDS instance. Changing this
     *        setting does not result in an outage and the change is applied
     *        during the next maintenance window unless
     *        ApplyImmediately is set to true for this
     *        request. 
     *        
     *        MySQL
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Valid Values: 5-6144
     *        
     *        
     *        Constraints: Value supplied must be at least 10% greater than the
     *        current value. Values that are not at least 10% greater than the
     *        existing value are rounded up so that they are 10% greater than
     *        the current value.
     *        
     *        
     *        Type: Integer
     *        
     *        
     *        MariaDB
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Valid Values: 5-6144
     *        
     *        
     *        Constraints: Value supplied must be at least 10% greater than the
     *        current value. Values that are not at least 10% greater than the
     *        existing value are rounded up so that they are 10% greater than
     *        the current value.
     *        
     *        
     *        Type: Integer
     *        
     *        
     *        PostgreSQL
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Valid Values: 5-6144
     *        
     *        
     *        Constraints: Value supplied must be at least 10% greater than the
     *        current value. Values that are not at least 10% greater than the
     *        existing value are rounded up so that they are 10% greater than
     *        the current value.
     *        
     *        
     *        Type: Integer
     *        
     *        
     *        Oracle
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Valid Values: 10-6144
     *        
     *        
     *        Constraints: Value supplied must be at least 10% greater than the
     *        current value. Values that are not at least 10% greater than the
     *        existing value are rounded up so that they are 10% greater than
     *        the current value.
     *        
     *        
     *        SQL Server
     *        
     *        
     *        Cannot be modified.
     *        
     *        
     *        If you choose to migrate your DB instance from using standard
     *        storage to using Provisioned IOPS, or from using Provisioned IOPS
     *        to using standard storage, the process can take time. The duration
     *        of the migration depends on several factors such as database load,
     *        storage size, storage type (standard or Provisioned IOPS), amount
     *        of IOPS provisioned (if any), and the number of prior scale
     *        storage operations. Typical migration times are under 24 hours,
     *        but the process can take up to several days in some cases. During
     *        the migration, the DB instance will be available for use, but
     *        might experience performance degradation. While the migration
     *        takes place, nightly backups for the instance will be suspended.
     *        No other Amazon RDS operations can take place for the instance,
     *        including modifying the instance, rebooting the instance, deleting
     *        the instance, creating a Read Replica for the instance, and
     *        creating a DB snapshot of the instance.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withAllocatedStorage(Integer allocatedStorage) {
        setAllocatedStorage(allocatedStorage);
        return this;
    }
    /**
     * 
     * The new compute and memory capacity of the DB instance. To determine the
     * instance classes that are available for a particular DB engine, use the
     * DescribeOrderableDBInstanceOptions action.
     * 
     * 
     * Passing a value for this setting causes an outage during the change and
     * is applied during the next maintenance window, unless
     * ApplyImmediately is specified as true for this
     * request.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values:
     * db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large
     * 
     * 
     * @param dBInstanceClass
     *        The new compute and memory capacity of the DB instance. To
     *        determine the instance classes that are available for a particular
     *        DB engine, use the DescribeOrderableDBInstanceOptions
     *        action. 
     *        
     *        Passing a value for this setting causes an outage during the
     *        change and is applied during the next maintenance window, unless
     *        ApplyImmediately is specified as true
     *        for this request.
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Valid Values:
     *        db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large
     */
    public void setDBInstanceClass(String dBInstanceClass) {
        this.dBInstanceClass = dBInstanceClass;
    }
    /**
     * 
     * The new compute and memory capacity of the DB instance. To determine the
     * instance classes that are available for a particular DB engine, use the
     * DescribeOrderableDBInstanceOptions action.
     * 
     * 
     * Passing a value for this setting causes an outage during the change and
     * is applied during the next maintenance window, unless
     * ApplyImmediately is specified as true for this
     * request.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values:
     * db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large
     * 
     * 
     * @return The new compute and memory capacity of the DB instance. To
     *         determine the instance classes that are available for a
     *         particular DB engine, use the
     *         DescribeOrderableDBInstanceOptions action. 
     *         
     *         Passing a value for this setting causes an outage during the
     *         change and is applied during the next maintenance window, unless
     *         ApplyImmediately is specified as true
     *         for this request.
     *         
     *         
     *         Default: Uses existing setting
     *         
     *         
     *         Valid Values:
     *         db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large
     */
    public String getDBInstanceClass() {
        return this.dBInstanceClass;
    }
    /**
     * 
     * The new compute and memory capacity of the DB instance. To determine the
     * instance classes that are available for a particular DB engine, use the
     * DescribeOrderableDBInstanceOptions action.
     * 
     * 
     * Passing a value for this setting causes an outage during the change and
     * is applied during the next maintenance window, unless
     * ApplyImmediately is specified as true for this
     * request.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Valid Values:
     * db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large
     * 
     * 
     * @param dBInstanceClass
     *        The new compute and memory capacity of the DB instance. To
     *        determine the instance classes that are available for a particular
     *        DB engine, use the DescribeOrderableDBInstanceOptions
     *        action. 
     *        
     *        Passing a value for this setting causes an outage during the
     *        change and is applied during the next maintenance window, unless
     *        ApplyImmediately is specified as true
     *        for this request.
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Valid Values:
     *        db.t1.micro | db.m1.small | db.m1.medium | db.m1.large | db.m1.xlarge | db.m2.xlarge | db.m2.2xlarge | db.m2.4xlarge | db.m3.medium | db.m3.large | db.m3.xlarge | db.m3.2xlarge | db.m4.large | db.m4.xlarge | db.m4.2xlarge | db.m4.4xlarge | db.m4.10xlarge | db.r3.large | db.r3.xlarge | db.r3.2xlarge | db.r3.4xlarge | db.r3.8xlarge | db.t2.micro | db.t2.small | db.t2.medium | db.t2.large
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withDBInstanceClass(String dBInstanceClass) {
        setDBInstanceClass(dBInstanceClass);
        return this;
    }
    /**
     * 
     * A list of DB security groups to authorize on this DB instance. Changing
     * this setting does not result in an outage and the change is
     * asynchronously applied as soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be 1 to 255 alphanumeric characters
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @return A list of DB security groups to authorize on this DB instance.
     *         Changing this setting does not result in an outage and the change
     *         is asynchronously applied as soon as possible.
     *         
     *         Constraints:
     *         
     *         
     *         - 
     *         
     *         Must be 1 to 255 alphanumeric characters
     *         
     *          
     *         - 
     *         
     *         First character must be a letter
     *         
     *          
     *         - 
     *         
     *         Cannot end with a hyphen or contain two consecutive hyphens
     *         
     *          
     */
    public java.util.List getDBSecurityGroups() {
        if (dBSecurityGroups == null) {
            dBSecurityGroups = new com.amazonaws.internal.SdkInternalList();
        }
        return dBSecurityGroups;
    }
    /**
     * 
     * A list of DB security groups to authorize on this DB instance. Changing
     * this setting does not result in an outage and the change is
     * asynchronously applied as soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be 1 to 255 alphanumeric characters
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @param dBSecurityGroups
     *        A list of DB security groups to authorize on this DB instance.
     *        Changing this setting does not result in an outage and the change
     *        is asynchronously applied as soon as possible.
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be 1 to 255 alphanumeric characters
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     */
    public void setDBSecurityGroups(
            java.util.Collection dBSecurityGroups) {
        if (dBSecurityGroups == null) {
            this.dBSecurityGroups = null;
            return;
        }
        this.dBSecurityGroups = new com.amazonaws.internal.SdkInternalList(
                dBSecurityGroups);
    }
    /**
     * 
     * A list of DB security groups to authorize on this DB instance. Changing
     * this setting does not result in an outage and the change is
     * asynchronously applied as soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be 1 to 255 alphanumeric characters
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setDBSecurityGroups(java.util.Collection)} or
     * {@link #withDBSecurityGroups(java.util.Collection)} if you want to
     * override the existing values.
     * 
     * 
     * @param dBSecurityGroups
     *        A list of DB security groups to authorize on this DB instance.
     *        Changing this setting does not result in an outage and the change
     *        is asynchronously applied as soon as possible.
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be 1 to 255 alphanumeric characters
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withDBSecurityGroups(
            String... dBSecurityGroups) {
        if (this.dBSecurityGroups == null) {
            setDBSecurityGroups(new com.amazonaws.internal.SdkInternalList(
                    dBSecurityGroups.length));
        }
        for (String ele : dBSecurityGroups) {
            this.dBSecurityGroups.add(ele);
        }
        return this;
    }
    /**
     * 
     * A list of DB security groups to authorize on this DB instance. Changing
     * this setting does not result in an outage and the change is
     * asynchronously applied as soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be 1 to 255 alphanumeric characters
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @param dBSecurityGroups
     *        A list of DB security groups to authorize on this DB instance.
     *        Changing this setting does not result in an outage and the change
     *        is asynchronously applied as soon as possible.
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be 1 to 255 alphanumeric characters
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withDBSecurityGroups(
            java.util.Collection dBSecurityGroups) {
        setDBSecurityGroups(dBSecurityGroups);
        return this;
    }
    /**
     * 
     * A list of EC2 VPC security groups to authorize on this DB instance. This
     * change is asynchronously applied as soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be 1 to 255 alphanumeric characters
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @return A list of EC2 VPC security groups to authorize on this DB
     *         instance. This change is asynchronously applied as soon as
     *         possible.
     *         
     *         Constraints:
     *         
     *         
     *         - 
     *         
     *         Must be 1 to 255 alphanumeric characters
     *         
     *          
     *         - 
     *         
     *         First character must be a letter
     *         
     *          
     *         - 
     *         
     *         Cannot end with a hyphen or contain two consecutive hyphens
     *         
     *          
     */
    public java.util.List getVpcSecurityGroupIds() {
        if (vpcSecurityGroupIds == null) {
            vpcSecurityGroupIds = new com.amazonaws.internal.SdkInternalList();
        }
        return vpcSecurityGroupIds;
    }
    /**
     * 
     * A list of EC2 VPC security groups to authorize on this DB instance. This
     * change is asynchronously applied as soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be 1 to 255 alphanumeric characters
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @param vpcSecurityGroupIds
     *        A list of EC2 VPC security groups to authorize on this DB
     *        instance. This change is asynchronously applied as soon as
     *        possible.
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be 1 to 255 alphanumeric characters
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     */
    public void setVpcSecurityGroupIds(
            java.util.Collection vpcSecurityGroupIds) {
        if (vpcSecurityGroupIds == null) {
            this.vpcSecurityGroupIds = null;
            return;
        }
        this.vpcSecurityGroupIds = new com.amazonaws.internal.SdkInternalList(
                vpcSecurityGroupIds);
    }
    /**
     * 
     * A list of EC2 VPC security groups to authorize on this DB instance. This
     * change is asynchronously applied as soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be 1 to 255 alphanumeric characters
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setVpcSecurityGroupIds(java.util.Collection)} or
     * {@link #withVpcSecurityGroupIds(java.util.Collection)} if you want to
     * override the existing values.
     * 
     * 
     * @param vpcSecurityGroupIds
     *        A list of EC2 VPC security groups to authorize on this DB
     *        instance. This change is asynchronously applied as soon as
     *        possible.
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be 1 to 255 alphanumeric characters
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withVpcSecurityGroupIds(
            String... vpcSecurityGroupIds) {
        if (this.vpcSecurityGroupIds == null) {
            setVpcSecurityGroupIds(new com.amazonaws.internal.SdkInternalList(
                    vpcSecurityGroupIds.length));
        }
        for (String ele : vpcSecurityGroupIds) {
            this.vpcSecurityGroupIds.add(ele);
        }
        return this;
    }
    /**
     * 
     * A list of EC2 VPC security groups to authorize on this DB instance. This
     * change is asynchronously applied as soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be 1 to 255 alphanumeric characters
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @param vpcSecurityGroupIds
     *        A list of EC2 VPC security groups to authorize on this DB
     *        instance. This change is asynchronously applied as soon as
     *        possible.
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be 1 to 255 alphanumeric characters
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withVpcSecurityGroupIds(
            java.util.Collection vpcSecurityGroupIds) {
        setVpcSecurityGroupIds(vpcSecurityGroupIds);
        return this;
    }
    /**
     * 
     * Specifies whether the modifications in this request and any pending
     * modifications are asynchronously applied as soon as possible, regardless
     * of the PreferredMaintenanceWindow setting for the DB
     * instance.
     * 
     * 
     * If this parameter is set to false, changes to the DB
     * instance are applied during the next maintenance window. Some parameter
     * changes can cause an outage and will be applied on the next call to
     * RebootDBInstance, or the next failure reboot. Review the table of
     * parameters in Modifying a DB Instance and Using the Apply Immediately Parameter to
     * see the impact that setting ApplyImmediately to
     * true or false has for each modified parameter
     * and to determine when the changes will be applied.
     * 
     * 
     * Default: false
     * 
     * 
     * @param applyImmediately
     *        Specifies whether the modifications in this request and any
     *        pending modifications are asynchronously applied as soon as
     *        possible, regardless of the
     *        PreferredMaintenanceWindow setting for the DB
     *        instance. 
     *        
     *        If this parameter is set to false, changes to the DB
     *        instance are applied during the next maintenance window. Some
     *        parameter changes can cause an outage and will be applied on the
     *        next call to RebootDBInstance, or the next failure reboot.
     *        Review the table of parameters in Modifying a DB Instance and Using the Apply Immediately
     *        Parameter to see the impact that setting
     *        ApplyImmediately to true or
     *        false has for each modified parameter and to
     *        determine when the changes will be applied.
     *        
     *        
     *        Default: false
     */
    public void setApplyImmediately(Boolean applyImmediately) {
        this.applyImmediately = applyImmediately;
    }
    /**
     * 
     * Specifies whether the modifications in this request and any pending
     * modifications are asynchronously applied as soon as possible, regardless
     * of the PreferredMaintenanceWindow setting for the DB
     * instance.
     * 
     * 
     * If this parameter is set to false, changes to the DB
     * instance are applied during the next maintenance window. Some parameter
     * changes can cause an outage and will be applied on the next call to
     * RebootDBInstance, or the next failure reboot. Review the table of
     * parameters in Modifying a DB Instance and Using the Apply Immediately Parameter to
     * see the impact that setting ApplyImmediately to
     * true or false has for each modified parameter
     * and to determine when the changes will be applied.
     * 
     * 
     * Default: false
     * 
     * 
     * @return Specifies whether the modifications in this request and any
     *         pending modifications are asynchronously applied as soon as
     *         possible, regardless of the
     *         PreferredMaintenanceWindow setting for the DB
     *         instance. 
     *         
     *         If this parameter is set to false, changes to the DB
     *         instance are applied during the next maintenance window. Some
     *         parameter changes can cause an outage and will be applied on the
     *         next call to RebootDBInstance, or the next failure reboot.
     *         Review the table of parameters in Modifying a DB Instance and Using the Apply Immediately
     *         Parameter to see the impact that setting
     *         ApplyImmediately to true or
     *         false has for each modified parameter and to
     *         determine when the changes will be applied.
     *         
     *         
     *         Default: false
     */
    public Boolean getApplyImmediately() {
        return this.applyImmediately;
    }
    /**
     * 
     * Specifies whether the modifications in this request and any pending
     * modifications are asynchronously applied as soon as possible, regardless
     * of the PreferredMaintenanceWindow setting for the DB
     * instance.
     * 
     * 
     * If this parameter is set to false, changes to the DB
     * instance are applied during the next maintenance window. Some parameter
     * changes can cause an outage and will be applied on the next call to
     * RebootDBInstance, or the next failure reboot. Review the table of
     * parameters in Modifying a DB Instance and Using the Apply Immediately Parameter to
     * see the impact that setting ApplyImmediately to
     * true or false has for each modified parameter
     * and to determine when the changes will be applied.
     * 
     * 
     * Default: false
     * 
     * 
     * @param applyImmediately
     *        Specifies whether the modifications in this request and any
     *        pending modifications are asynchronously applied as soon as
     *        possible, regardless of the
     *        PreferredMaintenanceWindow setting for the DB
     *        instance. 
     *        
     *        If this parameter is set to false, changes to the DB
     *        instance are applied during the next maintenance window. Some
     *        parameter changes can cause an outage and will be applied on the
     *        next call to RebootDBInstance, or the next failure reboot.
     *        Review the table of parameters in Modifying a DB Instance and Using the Apply Immediately
     *        Parameter to see the impact that setting
     *        ApplyImmediately to true or
     *        false has for each modified parameter and to
     *        determine when the changes will be applied.
     *        
     *        
     *        Default: false
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withApplyImmediately(Boolean applyImmediately) {
        setApplyImmediately(applyImmediately);
        return this;
    }
    /**
     * 
     * Specifies whether the modifications in this request and any pending
     * modifications are asynchronously applied as soon as possible, regardless
     * of the PreferredMaintenanceWindow setting for the DB
     * instance.
     * 
     * 
     * If this parameter is set to false, changes to the DB
     * instance are applied during the next maintenance window. Some parameter
     * changes can cause an outage and will be applied on the next call to
     * RebootDBInstance, or the next failure reboot. Review the table of
     * parameters in Modifying a DB Instance and Using the Apply Immediately Parameter to
     * see the impact that setting ApplyImmediately to
     * true or false has for each modified parameter
     * and to determine when the changes will be applied.
     * 
     * 
     * Default: false
     * 
     * 
     * @return Specifies whether the modifications in this request and any
     *         pending modifications are asynchronously applied as soon as
     *         possible, regardless of the
     *         PreferredMaintenanceWindow setting for the DB
     *         instance. 
     *         
     *         If this parameter is set to false, changes to the DB
     *         instance are applied during the next maintenance window. Some
     *         parameter changes can cause an outage and will be applied on the
     *         next call to RebootDBInstance, or the next failure reboot.
     *         Review the table of parameters in Modifying a DB Instance and Using the Apply Immediately
     *         Parameter to see the impact that setting
     *         ApplyImmediately to true or
     *         false has for each modified parameter and to
     *         determine when the changes will be applied.
     *         
     *         
     *         Default: false
     */
    public Boolean isApplyImmediately() {
        return this.applyImmediately;
    }
    /**
     * 
     * The new password for the DB instance master user. Can be any printable
     * ASCII character except "/", """, or "@".
     * 
     * 
     * Changing this parameter does not result in an outage and the change is
     * asynchronously applied as soon as possible. Between the time of the
     * request and the completion of the request, the
     * MasterUserPassword element exists in the
     * PendingModifiedValues element of the operation response.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: Must be 8 to 41 alphanumeric characters (MySQL, MariaDB, and
     * Amazon Aurora), 8 to 30 alphanumeric characters (Oracle), or 8 to 128
     * alphanumeric characters (SQL Server).
     * 
     * 
     * 
     * Amazon RDS API actions never return the password, so this action provides
     * a way to regain access to a primary instance user if the password is
     * lost. This includes restoring privileges that might have been
     * accidentally revoked.
     * 
     *  
     * 
     * @param masterUserPassword
     *        The new password for the DB instance master user. Can be any
     *        printable ASCII character except "/", """, or "@".
     *        
     *        Changing this parameter does not result in an outage and the
     *        change is asynchronously applied as soon as possible. Between the
     *        time of the request and the completion of the request, the
     *        MasterUserPassword element exists in the
     *        PendingModifiedValues element of the operation
     *        response.
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Constraints: Must be 8 to 41 alphanumeric characters (MySQL,
     *        MariaDB, and Amazon Aurora), 8 to 30 alphanumeric characters
     *        (Oracle), or 8 to 128 alphanumeric characters (SQL Server).
     *        
     *        
     *        
     *        Amazon RDS API actions never return the password, so this action
     *        provides a way to regain access to a primary instance user if the
     *        password is lost. This includes restoring privileges that might
     *        have been accidentally revoked.
     *        
     */
    public void setMasterUserPassword(String masterUserPassword) {
        this.masterUserPassword = masterUserPassword;
    }
    /**
     * 
     * The new password for the DB instance master user. Can be any printable
     * ASCII character except "/", """, or "@".
     * 
     * 
     * Changing this parameter does not result in an outage and the change is
     * asynchronously applied as soon as possible. Between the time of the
     * request and the completion of the request, the
     * MasterUserPassword element exists in the
     * PendingModifiedValues element of the operation response.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: Must be 8 to 41 alphanumeric characters (MySQL, MariaDB, and
     * Amazon Aurora), 8 to 30 alphanumeric characters (Oracle), or 8 to 128
     * alphanumeric characters (SQL Server).
     * 
     * 
     * 
     * Amazon RDS API actions never return the password, so this action provides
     * a way to regain access to a primary instance user if the password is
     * lost. This includes restoring privileges that might have been
     * accidentally revoked.
     * 
     *  
     * 
     * @return The new password for the DB instance master user. Can be any
     *         printable ASCII character except "/", """, or "@".
     *         
     *         Changing this parameter does not result in an outage and the
     *         change is asynchronously applied as soon as possible. Between the
     *         time of the request and the completion of the request, the
     *         MasterUserPassword element exists in the
     *         PendingModifiedValues element of the operation
     *         response.
     *         
     *         
     *         Default: Uses existing setting
     *         
     *         
     *         Constraints: Must be 8 to 41 alphanumeric characters (MySQL,
     *         MariaDB, and Amazon Aurora), 8 to 30 alphanumeric characters
     *         (Oracle), or 8 to 128 alphanumeric characters (SQL Server).
     *         
     *         
     *         
     *         Amazon RDS API actions never return the password, so this action
     *         provides a way to regain access to a primary instance user if the
     *         password is lost. This includes restoring privileges that might
     *         have been accidentally revoked.
     *         
     */
    public String getMasterUserPassword() {
        return this.masterUserPassword;
    }
    /**
     * 
     * The new password for the DB instance master user. Can be any printable
     * ASCII character except "/", """, or "@".
     * 
     * 
     * Changing this parameter does not result in an outage and the change is
     * asynchronously applied as soon as possible. Between the time of the
     * request and the completion of the request, the
     * MasterUserPassword element exists in the
     * PendingModifiedValues element of the operation response.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: Must be 8 to 41 alphanumeric characters (MySQL, MariaDB, and
     * Amazon Aurora), 8 to 30 alphanumeric characters (Oracle), or 8 to 128
     * alphanumeric characters (SQL Server).
     * 
     * 
     * 
     * Amazon RDS API actions never return the password, so this action provides
     * a way to regain access to a primary instance user if the password is
     * lost. This includes restoring privileges that might have been
     * accidentally revoked.
     * 
     *  
     * 
     * @param masterUserPassword
     *        The new password for the DB instance master user. Can be any
     *        printable ASCII character except "/", """, or "@".
     *        
     *        Changing this parameter does not result in an outage and the
     *        change is asynchronously applied as soon as possible. Between the
     *        time of the request and the completion of the request, the
     *        MasterUserPassword element exists in the
     *        PendingModifiedValues element of the operation
     *        response.
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Constraints: Must be 8 to 41 alphanumeric characters (MySQL,
     *        MariaDB, and Amazon Aurora), 8 to 30 alphanumeric characters
     *        (Oracle), or 8 to 128 alphanumeric characters (SQL Server).
     *        
     *        
     *        
     *        Amazon RDS API actions never return the password, so this action
     *        provides a way to regain access to a primary instance user if the
     *        password is lost. This includes restoring privileges that might
     *        have been accidentally revoked.
     *        
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withMasterUserPassword(
            String masterUserPassword) {
        setMasterUserPassword(masterUserPassword);
        return this;
    }
    /**
     * 
     * The name of the DB parameter group to apply to the DB instance. Changing
     * this setting does not result in an outage. The parameter group name
     * itself is changed immediately, but the actual parameter changes are not
     * applied until you reboot the instance without failover. The db instance
     * will NOT be rebooted automatically and the parameter changes will NOT be
     * applied during the next maintenance window.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: The DB parameter group must be in the same DB parameter
     * group family as this DB instance.
     * 
     * 
     * @param dBParameterGroupName
     *        The name of the DB parameter group to apply to the DB instance.
     *        Changing this setting does not result in an outage. The parameter
     *        group name itself is changed immediately, but the actual parameter
     *        changes are not applied until you reboot the instance without
     *        failover. The db instance will NOT be rebooted automatically and
     *        the parameter changes will NOT be applied during the next
     *        maintenance window.
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Constraints: The DB parameter group must be in the same DB
     *        parameter group family as this DB instance.
     */
    public void setDBParameterGroupName(String dBParameterGroupName) {
        this.dBParameterGroupName = dBParameterGroupName;
    }
    /**
     * 
     * The name of the DB parameter group to apply to the DB instance. Changing
     * this setting does not result in an outage. The parameter group name
     * itself is changed immediately, but the actual parameter changes are not
     * applied until you reboot the instance without failover. The db instance
     * will NOT be rebooted automatically and the parameter changes will NOT be
     * applied during the next maintenance window.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: The DB parameter group must be in the same DB parameter
     * group family as this DB instance.
     * 
     * 
     * @return The name of the DB parameter group to apply to the DB instance.
     *         Changing this setting does not result in an outage. The parameter
     *         group name itself is changed immediately, but the actual
     *         parameter changes are not applied until you reboot the instance
     *         without failover. The db instance will NOT be rebooted
     *         automatically and the parameter changes will NOT be applied
     *         during the next maintenance window.
     *         
     *         Default: Uses existing setting
     *         
     *         
     *         Constraints: The DB parameter group must be in the same DB
     *         parameter group family as this DB instance.
     */
    public String getDBParameterGroupName() {
        return this.dBParameterGroupName;
    }
    /**
     * 
     * The name of the DB parameter group to apply to the DB instance. Changing
     * this setting does not result in an outage. The parameter group name
     * itself is changed immediately, but the actual parameter changes are not
     * applied until you reboot the instance without failover. The db instance
     * will NOT be rebooted automatically and the parameter changes will NOT be
     * applied during the next maintenance window.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: The DB parameter group must be in the same DB parameter
     * group family as this DB instance.
     * 
     * 
     * @param dBParameterGroupName
     *        The name of the DB parameter group to apply to the DB instance.
     *        Changing this setting does not result in an outage. The parameter
     *        group name itself is changed immediately, but the actual parameter
     *        changes are not applied until you reboot the instance without
     *        failover. The db instance will NOT be rebooted automatically and
     *        the parameter changes will NOT be applied during the next
     *        maintenance window.
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Constraints: The DB parameter group must be in the same DB
     *        parameter group family as this DB instance.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withDBParameterGroupName(
            String dBParameterGroupName) {
        setDBParameterGroupName(dBParameterGroupName);
        return this;
    }
    /**
     * 
     * The number of days to retain automated backups. Setting this parameter to
     * a positive number enables backups. Setting this parameter to 0 disables
     * automated backups.
     * 
     * 
     * Changing this parameter can result in an outage if you change from 0 to a
     * non-zero value or from a non-zero value to 0. These changes are applied
     * during the next maintenance window unless the
     * ApplyImmediately parameter is set to true for
     * this request. If you change the parameter from one non-zero value to
     * another non-zero value, the change is asynchronously applied as soon as
     * possible.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be a value from 0 to 35
     * 
     *  
     * - 
     * 
     * Can be specified for a MySQL Read Replica only if the source is running
     * MySQL 5.6
     * 
     *  
     * - 
     * 
     * Can be specified for a PostgreSQL Read Replica only if the source is
     * running PostgreSQL 9.3.5
     * 
     *  
     * - 
     * 
     * Cannot be set to 0 if the DB instance is a source to Read Replicas
     * 
     *  
     * 
     * 
     * @param backupRetentionPeriod
     *        The number of days to retain automated backups. Setting this
     *        parameter to a positive number enables backups. Setting this
     *        parameter to 0 disables automated backups.
     *        
     *        Changing this parameter can result in an outage if you change from
     *        0 to a non-zero value or from a non-zero value to 0. These changes
     *        are applied during the next maintenance window unless the
     *        ApplyImmediately parameter is set to
     *        true for this request. If you change the parameter
     *        from one non-zero value to another non-zero value, the change is
     *        asynchronously applied as soon as possible.
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be a value from 0 to 35
     *        
     *         
     *        - 
     *        
     *        Can be specified for a MySQL Read Replica only if the source is
     *        running MySQL 5.6
     *        
     *         
     *        - 
     *        
     *        Can be specified for a PostgreSQL Read Replica only if the source
     *        is running PostgreSQL 9.3.5
     *        
     *         
     *        - 
     *        
     *        Cannot be set to 0 if the DB instance is a source to Read Replicas
     *        
     *         
     */
    public void setBackupRetentionPeriod(Integer backupRetentionPeriod) {
        this.backupRetentionPeriod = backupRetentionPeriod;
    }
    /**
     * 
     * The number of days to retain automated backups. Setting this parameter to
     * a positive number enables backups. Setting this parameter to 0 disables
     * automated backups.
     * 
     * 
     * Changing this parameter can result in an outage if you change from 0 to a
     * non-zero value or from a non-zero value to 0. These changes are applied
     * during the next maintenance window unless the
     * ApplyImmediately parameter is set to true for
     * this request. If you change the parameter from one non-zero value to
     * another non-zero value, the change is asynchronously applied as soon as
     * possible.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be a value from 0 to 35
     * 
     *  
     * - 
     * 
     * Can be specified for a MySQL Read Replica only if the source is running
     * MySQL 5.6
     * 
     *  
     * - 
     * 
     * Can be specified for a PostgreSQL Read Replica only if the source is
     * running PostgreSQL 9.3.5
     * 
     *  
     * - 
     * 
     * Cannot be set to 0 if the DB instance is a source to Read Replicas
     * 
     *  
     * 
     * 
     * @return The number of days to retain automated backups. Setting this
     *         parameter to a positive number enables backups. Setting this
     *         parameter to 0 disables automated backups.
     *         
     *         Changing this parameter can result in an outage if you change
     *         from 0 to a non-zero value or from a non-zero value to 0. These
     *         changes are applied during the next maintenance window unless the
     *         ApplyImmediately parameter is set to
     *         true for this request. If you change the parameter
     *         from one non-zero value to another non-zero value, the change is
     *         asynchronously applied as soon as possible.
     *         
     *         
     *         Default: Uses existing setting
     *         
     *         
     *         Constraints:
     *         
     *         
     *         - 
     *         
     *         Must be a value from 0 to 35
     *         
     *          
     *         - 
     *         
     *         Can be specified for a MySQL Read Replica only if the source is
     *         running MySQL 5.6
     *         
     *          
     *         - 
     *         
     *         Can be specified for a PostgreSQL Read Replica only if the source
     *         is running PostgreSQL 9.3.5
     *         
     *          
     *         - 
     *         
     *         Cannot be set to 0 if the DB instance is a source to Read
     *         Replicas
     *         
     *          
     */
    public Integer getBackupRetentionPeriod() {
        return this.backupRetentionPeriod;
    }
    /**
     * 
     * The number of days to retain automated backups. Setting this parameter to
     * a positive number enables backups. Setting this parameter to 0 disables
     * automated backups.
     * 
     * 
     * Changing this parameter can result in an outage if you change from 0 to a
     * non-zero value or from a non-zero value to 0. These changes are applied
     * during the next maintenance window unless the
     * ApplyImmediately parameter is set to true for
     * this request. If you change the parameter from one non-zero value to
     * another non-zero value, the change is asynchronously applied as soon as
     * possible.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be a value from 0 to 35
     * 
     *  
     * - 
     * 
     * Can be specified for a MySQL Read Replica only if the source is running
     * MySQL 5.6
     * 
     *  
     * - 
     * 
     * Can be specified for a PostgreSQL Read Replica only if the source is
     * running PostgreSQL 9.3.5
     * 
     *  
     * - 
     * 
     * Cannot be set to 0 if the DB instance is a source to Read Replicas
     * 
     *  
     * 
     * 
     * @param backupRetentionPeriod
     *        The number of days to retain automated backups. Setting this
     *        parameter to a positive number enables backups. Setting this
     *        parameter to 0 disables automated backups.
     *        
     *        Changing this parameter can result in an outage if you change from
     *        0 to a non-zero value or from a non-zero value to 0. These changes
     *        are applied during the next maintenance window unless the
     *        ApplyImmediately parameter is set to
     *        true for this request. If you change the parameter
     *        from one non-zero value to another non-zero value, the change is
     *        asynchronously applied as soon as possible.
     *        
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be a value from 0 to 35
     *        
     *         
     *        - 
     *        
     *        Can be specified for a MySQL Read Replica only if the source is
     *        running MySQL 5.6
     *        
     *         
     *        - 
     *        
     *        Can be specified for a PostgreSQL Read Replica only if the source
     *        is running PostgreSQL 9.3.5
     *        
     *         
     *        - 
     *        
     *        Cannot be set to 0 if the DB instance is a source to Read Replicas
     *        
     *         
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withBackupRetentionPeriod(
            Integer backupRetentionPeriod) {
        setBackupRetentionPeriod(backupRetentionPeriod);
        return this;
    }
    /**
     * 
     * The daily time range during which automated backups are created if
     * automated backups are enabled, as determined by the
     * BackupRetentionPeriod parameter. Changing this parameter
     * does not result in an outage and the change is asynchronously applied as
     * soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be in the format hh24:mi-hh24:mi
     * 
     *  
     * - 
     * 
     * Times should be in Universal Time Coordinated (UTC)
     * 
     *  
     * - 
     * 
     * Must not conflict with the preferred maintenance window
     * 
     *  
     * - 
     * 
     * Must be at least 30 minutes
     * 
     *  
     * 
     * 
     * @param preferredBackupWindow
     *        The daily time range during which automated backups are created if
     *        automated backups are enabled, as determined by the
     *        BackupRetentionPeriod parameter. Changing this
     *        parameter does not result in an outage and the change is
     *        asynchronously applied as soon as possible. 
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be in the format hh24:mi-hh24:mi
     *        
     *         
     *        - 
     *        
     *        Times should be in Universal Time Coordinated (UTC)
     *        
     *         
     *        - 
     *        
     *        Must not conflict with the preferred maintenance window
     *        
     *         
     *        - 
     *        
     *        Must be at least 30 minutes
     *        
     *         
     */
    public void setPreferredBackupWindow(String preferredBackupWindow) {
        this.preferredBackupWindow = preferredBackupWindow;
    }
    /**
     * 
     * The daily time range during which automated backups are created if
     * automated backups are enabled, as determined by the
     * BackupRetentionPeriod parameter. Changing this parameter
     * does not result in an outage and the change is asynchronously applied as
     * soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be in the format hh24:mi-hh24:mi
     * 
     *  
     * - 
     * 
     * Times should be in Universal Time Coordinated (UTC)
     * 
     *  
     * - 
     * 
     * Must not conflict with the preferred maintenance window
     * 
     *  
     * - 
     * 
     * Must be at least 30 minutes
     * 
     *  
     * 
     * 
     * @return The daily time range during which automated backups are created
     *         if automated backups are enabled, as determined by the
     *         BackupRetentionPeriod parameter. Changing this
     *         parameter does not result in an outage and the change is
     *         asynchronously applied as soon as possible. 
     *         
     *         Constraints:
     *         
     *         
     *         - 
     *         
     *         Must be in the format hh24:mi-hh24:mi
     *         
     *          
     *         - 
     *         
     *         Times should be in Universal Time Coordinated (UTC)
     *         
     *          
     *         - 
     *         
     *         Must not conflict with the preferred maintenance window
     *         
     *          
     *         - 
     *         
     *         Must be at least 30 minutes
     *         
     *          
     */
    public String getPreferredBackupWindow() {
        return this.preferredBackupWindow;
    }
    /**
     * 
     * The daily time range during which automated backups are created if
     * automated backups are enabled, as determined by the
     * BackupRetentionPeriod parameter. Changing this parameter
     * does not result in an outage and the change is asynchronously applied as
     * soon as possible.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must be in the format hh24:mi-hh24:mi
     * 
     *  
     * - 
     * 
     * Times should be in Universal Time Coordinated (UTC)
     * 
     *  
     * - 
     * 
     * Must not conflict with the preferred maintenance window
     * 
     *  
     * - 
     * 
     * Must be at least 30 minutes
     * 
     *  
     * 
     * 
     * @param preferredBackupWindow
     *        The daily time range during which automated backups are created if
     *        automated backups are enabled, as determined by the
     *        BackupRetentionPeriod parameter. Changing this
     *        parameter does not result in an outage and the change is
     *        asynchronously applied as soon as possible. 
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must be in the format hh24:mi-hh24:mi
     *        
     *         
     *        - 
     *        
     *        Times should be in Universal Time Coordinated (UTC)
     *        
     *         
     *        - 
     *        
     *        Must not conflict with the preferred maintenance window
     *        
     *         
     *        - 
     *        
     *        Must be at least 30 minutes
     *        
     *         
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withPreferredBackupWindow(
            String preferredBackupWindow) {
        setPreferredBackupWindow(preferredBackupWindow);
        return this;
    }
    /**
     * 
     * The weekly time range (in UTC) during which system maintenance can occur,
     * which might result in an outage. Changing this parameter does not result
     * in an outage, except in the following situation, and the change is
     * asynchronously applied as soon as possible. If there are pending actions
     * that cause a reboot, and the maintenance window is changed to include the
     * current time, then changing this parameter will cause a reboot of the DB
     * instance. If moving this window to the current time, there must be at
     * least 30 minutes between the current time and end of the window to ensure
     * pending changes are applied.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Format: ddd:hh24:mi-ddd:hh24:mi
     * 
     * 
     * Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
     * 
     * 
     * Constraints: Must be at least 30 minutes
     * 
     * 
     * @param preferredMaintenanceWindow
     *        The weekly time range (in UTC) during which system maintenance can
     *        occur, which might result in an outage. Changing this parameter
     *        does not result in an outage, except in the following situation,
     *        and the change is asynchronously applied as soon as possible. If
     *        there are pending actions that cause a reboot, and the maintenance
     *        window is changed to include the current time, then changing this
     *        parameter will cause a reboot of the DB instance. If moving this
     *        window to the current time, there must be at least 30 minutes
     *        between the current time and end of the window to ensure pending
     *        changes are applied.
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Format: ddd:hh24:mi-ddd:hh24:mi
     *        
     *        
     *        Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
     *        
     *        
     *        Constraints: Must be at least 30 minutes
     */
    public void setPreferredMaintenanceWindow(String preferredMaintenanceWindow) {
        this.preferredMaintenanceWindow = preferredMaintenanceWindow;
    }
    /**
     * 
     * The weekly time range (in UTC) during which system maintenance can occur,
     * which might result in an outage. Changing this parameter does not result
     * in an outage, except in the following situation, and the change is
     * asynchronously applied as soon as possible. If there are pending actions
     * that cause a reboot, and the maintenance window is changed to include the
     * current time, then changing this parameter will cause a reboot of the DB
     * instance. If moving this window to the current time, there must be at
     * least 30 minutes between the current time and end of the window to ensure
     * pending changes are applied.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Format: ddd:hh24:mi-ddd:hh24:mi
     * 
     * 
     * Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
     * 
     * 
     * Constraints: Must be at least 30 minutes
     * 
     * 
     * @return The weekly time range (in UTC) during which system maintenance
     *         can occur, which might result in an outage. Changing this
     *         parameter does not result in an outage, except in the following
     *         situation, and the change is asynchronously applied as soon as
     *         possible. If there are pending actions that cause a reboot, and
     *         the maintenance window is changed to include the current time,
     *         then changing this parameter will cause a reboot of the DB
     *         instance. If moving this window to the current time, there must
     *         be at least 30 minutes between the current time and end of the
     *         window to ensure pending changes are applied.
     *         
     *         Default: Uses existing setting
     *         
     *         
     *         Format: ddd:hh24:mi-ddd:hh24:mi
     *         
     *         
     *         Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
     *         
     *         
     *         Constraints: Must be at least 30 minutes
     */
    public String getPreferredMaintenanceWindow() {
        return this.preferredMaintenanceWindow;
    }
    /**
     * 
     * The weekly time range (in UTC) during which system maintenance can occur,
     * which might result in an outage. Changing this parameter does not result
     * in an outage, except in the following situation, and the change is
     * asynchronously applied as soon as possible. If there are pending actions
     * that cause a reboot, and the maintenance window is changed to include the
     * current time, then changing this parameter will cause a reboot of the DB
     * instance. If moving this window to the current time, there must be at
     * least 30 minutes between the current time and end of the window to ensure
     * pending changes are applied.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Format: ddd:hh24:mi-ddd:hh24:mi
     * 
     * 
     * Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
     * 
     * 
     * Constraints: Must be at least 30 minutes
     * 
     * 
     * @param preferredMaintenanceWindow
     *        The weekly time range (in UTC) during which system maintenance can
     *        occur, which might result in an outage. Changing this parameter
     *        does not result in an outage, except in the following situation,
     *        and the change is asynchronously applied as soon as possible. If
     *        there are pending actions that cause a reboot, and the maintenance
     *        window is changed to include the current time, then changing this
     *        parameter will cause a reboot of the DB instance. If moving this
     *        window to the current time, there must be at least 30 minutes
     *        between the current time and end of the window to ensure pending
     *        changes are applied.
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Format: ddd:hh24:mi-ddd:hh24:mi
     *        
     *        
     *        Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun
     *        
     *        
     *        Constraints: Must be at least 30 minutes
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withPreferredMaintenanceWindow(
            String preferredMaintenanceWindow) {
        setPreferredMaintenanceWindow(preferredMaintenanceWindow);
        return this;
    }
    /**
     * 
     * Specifies if the DB instance is a Multi-AZ deployment. Changing this
     * parameter does not result in an outage and the change is applied during
     * the next maintenance window unless the ApplyImmediately
     * parameter is set to true for this request.
     * 
     * 
     * Constraints: Cannot be specified if the DB instance is a Read Replica.
     * This parameter cannot be used with SQL Server DB instances. Multi-AZ for
     * SQL Server DB instances is set using the Mirroring option in an option
     * group associated with the DB instance.
     * 
     * 
     * @param multiAZ
     *        Specifies if the DB instance is a Multi-AZ deployment. Changing
     *        this parameter does not result in an outage and the change is
     *        applied during the next maintenance window unless the
     *        ApplyImmediately parameter is set to
     *        true for this request. 
     *        
     *        Constraints: Cannot be specified if the DB instance is a Read
     *        Replica. This parameter cannot be used with SQL Server DB
     *        instances. Multi-AZ for SQL Server DB instances is set using the
     *        Mirroring option in an option group associated with the DB
     *        instance.
     */
    public void setMultiAZ(Boolean multiAZ) {
        this.multiAZ = multiAZ;
    }
    /**
     * 
     * Specifies if the DB instance is a Multi-AZ deployment. Changing this
     * parameter does not result in an outage and the change is applied during
     * the next maintenance window unless the ApplyImmediately
     * parameter is set to true for this request.
     * 
     * 
     * Constraints: Cannot be specified if the DB instance is a Read Replica.
     * This parameter cannot be used with SQL Server DB instances. Multi-AZ for
     * SQL Server DB instances is set using the Mirroring option in an option
     * group associated with the DB instance.
     * 
     * 
     * @return Specifies if the DB instance is a Multi-AZ deployment. Changing
     *         this parameter does not result in an outage and the change is
     *         applied during the next maintenance window unless the
     *         ApplyImmediately parameter is set to
     *         true for this request. 
     *         
     *         Constraints: Cannot be specified if the DB instance is a Read
     *         Replica. This parameter cannot be used with SQL Server DB
     *         instances. Multi-AZ for SQL Server DB instances is set using the
     *         Mirroring option in an option group associated with the DB
     *         instance.
     */
    public Boolean getMultiAZ() {
        return this.multiAZ;
    }
    /**
     * 
     * Specifies if the DB instance is a Multi-AZ deployment. Changing this
     * parameter does not result in an outage and the change is applied during
     * the next maintenance window unless the ApplyImmediately
     * parameter is set to true for this request.
     * 
     * 
     * Constraints: Cannot be specified if the DB instance is a Read Replica.
     * This parameter cannot be used with SQL Server DB instances. Multi-AZ for
     * SQL Server DB instances is set using the Mirroring option in an option
     * group associated with the DB instance.
     * 
     * 
     * @param multiAZ
     *        Specifies if the DB instance is a Multi-AZ deployment. Changing
     *        this parameter does not result in an outage and the change is
     *        applied during the next maintenance window unless the
     *        ApplyImmediately parameter is set to
     *        true for this request. 
     *        
     *        Constraints: Cannot be specified if the DB instance is a Read
     *        Replica. This parameter cannot be used with SQL Server DB
     *        instances. Multi-AZ for SQL Server DB instances is set using the
     *        Mirroring option in an option group associated with the DB
     *        instance.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withMultiAZ(Boolean multiAZ) {
        setMultiAZ(multiAZ);
        return this;
    }
    /**
     * 
     * Specifies if the DB instance is a Multi-AZ deployment. Changing this
     * parameter does not result in an outage and the change is applied during
     * the next maintenance window unless the ApplyImmediately
     * parameter is set to true for this request.
     * 
     * 
     * Constraints: Cannot be specified if the DB instance is a Read Replica.
     * This parameter cannot be used with SQL Server DB instances. Multi-AZ for
     * SQL Server DB instances is set using the Mirroring option in an option
     * group associated with the DB instance.
     * 
     * 
     * @return Specifies if the DB instance is a Multi-AZ deployment. Changing
     *         this parameter does not result in an outage and the change is
     *         applied during the next maintenance window unless the
     *         ApplyImmediately parameter is set to
     *         true for this request. 
     *         
     *         Constraints: Cannot be specified if the DB instance is a Read
     *         Replica. This parameter cannot be used with SQL Server DB
     *         instances. Multi-AZ for SQL Server DB instances is set using the
     *         Mirroring option in an option group associated with the DB
     *         instance.
     */
    public Boolean isMultiAZ() {
        return this.multiAZ;
    }
    /**
     * 
     * The version number of the database engine to upgrade to. Changing this
     * parameter results in an outage and the change is applied during the next
     * maintenance window unless the ApplyImmediately parameter is
     * set to true for this request.
     * 
     * 
     * For major version upgrades, if a non-default DB parameter group is
     * currently in use, a new DB parameter group in the DB parameter group
     * family for the new engine version must be specified. The new DB parameter
     * group can be the default for that DB parameter group family.
     * 
     * 
     * For a list of valid engine versions, see CreateDBInstance.
     * 
     * 
     * @param engineVersion
     *        The version number of the database engine to upgrade to. Changing
     *        this parameter results in an outage and the change is applied
     *        during the next maintenance window unless the
     *        ApplyImmediately parameter is set to
     *        true for this request. 
     *        
     *        For major version upgrades, if a non-default DB parameter group is
     *        currently in use, a new DB parameter group in the DB parameter
     *        group family for the new engine version must be specified. The new
     *        DB parameter group can be the default for that DB parameter group
     *        family.
     *        
     *        
     *        For a list of valid engine versions, see CreateDBInstance.
     */
    public void setEngineVersion(String engineVersion) {
        this.engineVersion = engineVersion;
    }
    /**
     * 
     * The version number of the database engine to upgrade to. Changing this
     * parameter results in an outage and the change is applied during the next
     * maintenance window unless the ApplyImmediately parameter is
     * set to true for this request.
     * 
     * 
     * For major version upgrades, if a non-default DB parameter group is
     * currently in use, a new DB parameter group in the DB parameter group
     * family for the new engine version must be specified. The new DB parameter
     * group can be the default for that DB parameter group family.
     * 
     * 
     * For a list of valid engine versions, see CreateDBInstance.
     * 
     * 
     * @return The version number of the database engine to upgrade to. Changing
     *         this parameter results in an outage and the change is applied
     *         during the next maintenance window unless the
     *         ApplyImmediately parameter is set to
     *         true for this request. 
     *         
     *         For major version upgrades, if a non-default DB parameter group
     *         is currently in use, a new DB parameter group in the DB parameter
     *         group family for the new engine version must be specified. The
     *         new DB parameter group can be the default for that DB parameter
     *         group family.
     *         
     *         
     *         For a list of valid engine versions, see CreateDBInstance.
     */
    public String getEngineVersion() {
        return this.engineVersion;
    }
    /**
     * 
     * The version number of the database engine to upgrade to. Changing this
     * parameter results in an outage and the change is applied during the next
     * maintenance window unless the ApplyImmediately parameter is
     * set to true for this request.
     * 
     * 
     * For major version upgrades, if a non-default DB parameter group is
     * currently in use, a new DB parameter group in the DB parameter group
     * family for the new engine version must be specified. The new DB parameter
     * group can be the default for that DB parameter group family.
     * 
     * 
     * For a list of valid engine versions, see CreateDBInstance.
     * 
     * 
     * @param engineVersion
     *        The version number of the database engine to upgrade to. Changing
     *        this parameter results in an outage and the change is applied
     *        during the next maintenance window unless the
     *        ApplyImmediately parameter is set to
     *        true for this request. 
     *        
     *        For major version upgrades, if a non-default DB parameter group is
     *        currently in use, a new DB parameter group in the DB parameter
     *        group family for the new engine version must be specified. The new
     *        DB parameter group can be the default for that DB parameter group
     *        family.
     *        
     *        
     *        For a list of valid engine versions, see CreateDBInstance.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withEngineVersion(String engineVersion) {
        setEngineVersion(engineVersion);
        return this;
    }
    /**
     * 
     * Indicates that major version upgrades are allowed. Changing this
     * parameter does not result in an outage and the change is asynchronously
     * applied as soon as possible.
     * 
     * 
     * Constraints: This parameter must be set to true when specifying a value
     * for the EngineVersion parameter that is a different major version than
     * the DB instance's current version.
     * 
     * 
     * @param allowMajorVersionUpgrade
     *        Indicates that major version upgrades are allowed. Changing this
     *        parameter does not result in an outage and the change is
     *        asynchronously applied as soon as possible.
     *        
     *        Constraints: This parameter must be set to true when specifying a
     *        value for the EngineVersion parameter that is a different major
     *        version than the DB instance's current version.
     */
    public void setAllowMajorVersionUpgrade(Boolean allowMajorVersionUpgrade) {
        this.allowMajorVersionUpgrade = allowMajorVersionUpgrade;
    }
    /**
     * 
     * Indicates that major version upgrades are allowed. Changing this
     * parameter does not result in an outage and the change is asynchronously
     * applied as soon as possible.
     * 
     * 
     * Constraints: This parameter must be set to true when specifying a value
     * for the EngineVersion parameter that is a different major version than
     * the DB instance's current version.
     * 
     * 
     * @return Indicates that major version upgrades are allowed. Changing this
     *         parameter does not result in an outage and the change is
     *         asynchronously applied as soon as possible.
     *         
     *         Constraints: This parameter must be set to true when specifying a
     *         value for the EngineVersion parameter that is a different major
     *         version than the DB instance's current version.
     */
    public Boolean getAllowMajorVersionUpgrade() {
        return this.allowMajorVersionUpgrade;
    }
    /**
     * 
     * Indicates that major version upgrades are allowed. Changing this
     * parameter does not result in an outage and the change is asynchronously
     * applied as soon as possible.
     * 
     * 
     * Constraints: This parameter must be set to true when specifying a value
     * for the EngineVersion parameter that is a different major version than
     * the DB instance's current version.
     * 
     * 
     * @param allowMajorVersionUpgrade
     *        Indicates that major version upgrades are allowed. Changing this
     *        parameter does not result in an outage and the change is
     *        asynchronously applied as soon as possible.
     *        
     *        Constraints: This parameter must be set to true when specifying a
     *        value for the EngineVersion parameter that is a different major
     *        version than the DB instance's current version.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withAllowMajorVersionUpgrade(
            Boolean allowMajorVersionUpgrade) {
        setAllowMajorVersionUpgrade(allowMajorVersionUpgrade);
        return this;
    }
    /**
     * 
     * Indicates that major version upgrades are allowed. Changing this
     * parameter does not result in an outage and the change is asynchronously
     * applied as soon as possible.
     * 
     * 
     * Constraints: This parameter must be set to true when specifying a value
     * for the EngineVersion parameter that is a different major version than
     * the DB instance's current version.
     * 
     * 
     * @return Indicates that major version upgrades are allowed. Changing this
     *         parameter does not result in an outage and the change is
     *         asynchronously applied as soon as possible.
     *         
     *         Constraints: This parameter must be set to true when specifying a
     *         value for the EngineVersion parameter that is a different major
     *         version than the DB instance's current version.
     */
    public Boolean isAllowMajorVersionUpgrade() {
        return this.allowMajorVersionUpgrade;
    }
    /**
     * 
     * Indicates that minor version upgrades will be applied automatically to
     * the DB instance during the maintenance window. Changing this parameter
     * does not result in an outage except in the following case and the change
     * is asynchronously applied as soon as possible. An outage will result if
     * this parameter is set to true during the maintenance window,
     * and a newer minor version is available, and RDS has enabled auto patching
     * for that engine version.
     * 
     * 
     * @param autoMinorVersionUpgrade
     *        Indicates that minor version upgrades will be applied
     *        automatically to the DB instance during the maintenance window.
     *        Changing this parameter does not result in an outage except in the
     *        following case and the change is asynchronously applied as soon as
     *        possible. An outage will result if this parameter is set to
     *        true during the maintenance window, and a newer minor
     *        version is available, and RDS has enabled auto patching for that
     *        engine version.
     */
    public void setAutoMinorVersionUpgrade(Boolean autoMinorVersionUpgrade) {
        this.autoMinorVersionUpgrade = autoMinorVersionUpgrade;
    }
    /**
     * 
     * Indicates that minor version upgrades will be applied automatically to
     * the DB instance during the maintenance window. Changing this parameter
     * does not result in an outage except in the following case and the change
     * is asynchronously applied as soon as possible. An outage will result if
     * this parameter is set to true during the maintenance window,
     * and a newer minor version is available, and RDS has enabled auto patching
     * for that engine version.
     * 
     * 
     * @return Indicates that minor version upgrades will be applied
     *         automatically to the DB instance during the maintenance window.
     *         Changing this parameter does not result in an outage except in
     *         the following case and the change is asynchronously applied as
     *         soon as possible. An outage will result if this parameter is set
     *         to true during the maintenance window, and a newer
     *         minor version is available, and RDS has enabled auto patching for
     *         that engine version.
     */
    public Boolean getAutoMinorVersionUpgrade() {
        return this.autoMinorVersionUpgrade;
    }
    /**
     * 
     * Indicates that minor version upgrades will be applied automatically to
     * the DB instance during the maintenance window. Changing this parameter
     * does not result in an outage except in the following case and the change
     * is asynchronously applied as soon as possible. An outage will result if
     * this parameter is set to true during the maintenance window,
     * and a newer minor version is available, and RDS has enabled auto patching
     * for that engine version.
     * 
     * 
     * @param autoMinorVersionUpgrade
     *        Indicates that minor version upgrades will be applied
     *        automatically to the DB instance during the maintenance window.
     *        Changing this parameter does not result in an outage except in the
     *        following case and the change is asynchronously applied as soon as
     *        possible. An outage will result if this parameter is set to
     *        true during the maintenance window, and a newer minor
     *        version is available, and RDS has enabled auto patching for that
     *        engine version.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withAutoMinorVersionUpgrade(
            Boolean autoMinorVersionUpgrade) {
        setAutoMinorVersionUpgrade(autoMinorVersionUpgrade);
        return this;
    }
    /**
     * 
     * Indicates that minor version upgrades will be applied automatically to
     * the DB instance during the maintenance window. Changing this parameter
     * does not result in an outage except in the following case and the change
     * is asynchronously applied as soon as possible. An outage will result if
     * this parameter is set to true during the maintenance window,
     * and a newer minor version is available, and RDS has enabled auto patching
     * for that engine version.
     * 
     * 
     * @return Indicates that minor version upgrades will be applied
     *         automatically to the DB instance during the maintenance window.
     *         Changing this parameter does not result in an outage except in
     *         the following case and the change is asynchronously applied as
     *         soon as possible. An outage will result if this parameter is set
     *         to true during the maintenance window, and a newer
     *         minor version is available, and RDS has enabled auto patching for
     *         that engine version.
     */
    public Boolean isAutoMinorVersionUpgrade() {
        return this.autoMinorVersionUpgrade;
    }
    /**
     * 
     * The new Provisioned IOPS (I/O operations per second) value for the RDS
     * instance. Changing this setting does not result in an outage and the
     * change is applied during the next maintenance window unless the
     * ApplyImmediately parameter is set to true for
     * this request.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value. If
     * you are migrating from Provisioned IOPS to standard storage, set this
     * value to 0. The DB instance will require a reboot for the change in
     * storage type to take effect.
     * 
     * 
     * SQL Server
     * 
     * 
     * Setting the IOPS value for the SQL Server database engine is not
     * supported.
     * 
     * 
     * Type: Integer
     * 
     * 
     * If you choose to migrate your DB instance from using standard storage to
     * using Provisioned IOPS, or from using Provisioned IOPS to using standard
     * storage, the process can take time. The duration of the migration depends
     * on several factors such as database load, storage size, storage type
     * (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and
     * the number of prior scale storage operations. Typical migration times are
     * under 24 hours, but the process can take up to several days in some
     * cases. During the migration, the DB instance will be available for use,
     * but might experience performance degradation. While the migration takes
     * place, nightly backups for the instance will be suspended. No other
     * Amazon RDS operations can take place for the instance, including
     * modifying the instance, rebooting the instance, deleting the instance,
     * creating a Read Replica for the instance, and creating a DB snapshot of
     * the instance.
     * 
     * 
     * @param iops
     *        The new Provisioned IOPS (I/O operations per second) value for the
     *        RDS instance. Changing this setting does not result in an outage
     *        and the change is applied during the next maintenance window
     *        unless the ApplyImmediately parameter is set to
     *        true for this request. 
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Constraints: Value supplied must be at least 10% greater than the
     *        current value. Values that are not at least 10% greater than the
     *        existing value are rounded up so that they are 10% greater than
     *        the current value. If you are migrating from Provisioned IOPS to
     *        standard storage, set this value to 0. The DB instance will
     *        require a reboot for the change in storage type to take effect.
     *        
     *        
     *        SQL Server
     *        
     *        
     *        Setting the IOPS value for the SQL Server database engine is not
     *        supported.
     *        
     *        
     *        Type: Integer
     *        
     *        
     *        If you choose to migrate your DB instance from using standard
     *        storage to using Provisioned IOPS, or from using Provisioned IOPS
     *        to using standard storage, the process can take time. The duration
     *        of the migration depends on several factors such as database load,
     *        storage size, storage type (standard or Provisioned IOPS), amount
     *        of IOPS provisioned (if any), and the number of prior scale
     *        storage operations. Typical migration times are under 24 hours,
     *        but the process can take up to several days in some cases. During
     *        the migration, the DB instance will be available for use, but
     *        might experience performance degradation. While the migration
     *        takes place, nightly backups for the instance will be suspended.
     *        No other Amazon RDS operations can take place for the instance,
     *        including modifying the instance, rebooting the instance, deleting
     *        the instance, creating a Read Replica for the instance, and
     *        creating a DB snapshot of the instance.
     */
    public void setIops(Integer iops) {
        this.iops = iops;
    }
    /**
     * 
     * The new Provisioned IOPS (I/O operations per second) value for the RDS
     * instance. Changing this setting does not result in an outage and the
     * change is applied during the next maintenance window unless the
     * ApplyImmediately parameter is set to true for
     * this request.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value. If
     * you are migrating from Provisioned IOPS to standard storage, set this
     * value to 0. The DB instance will require a reboot for the change in
     * storage type to take effect.
     * 
     * 
     * SQL Server
     * 
     * 
     * Setting the IOPS value for the SQL Server database engine is not
     * supported.
     * 
     * 
     * Type: Integer
     * 
     * 
     * If you choose to migrate your DB instance from using standard storage to
     * using Provisioned IOPS, or from using Provisioned IOPS to using standard
     * storage, the process can take time. The duration of the migration depends
     * on several factors such as database load, storage size, storage type
     * (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and
     * the number of prior scale storage operations. Typical migration times are
     * under 24 hours, but the process can take up to several days in some
     * cases. During the migration, the DB instance will be available for use,
     * but might experience performance degradation. While the migration takes
     * place, nightly backups for the instance will be suspended. No other
     * Amazon RDS operations can take place for the instance, including
     * modifying the instance, rebooting the instance, deleting the instance,
     * creating a Read Replica for the instance, and creating a DB snapshot of
     * the instance.
     * 
     * 
     * @return The new Provisioned IOPS (I/O operations per second) value for
     *         the RDS instance. Changing this setting does not result in an
     *         outage and the change is applied during the next maintenance
     *         window unless the ApplyImmediately parameter is set
     *         to true for this request. 
     *         
     *         Default: Uses existing setting
     *         
     *         
     *         Constraints: Value supplied must be at least 10% greater than the
     *         current value. Values that are not at least 10% greater than the
     *         existing value are rounded up so that they are 10% greater than
     *         the current value. If you are migrating from Provisioned IOPS to
     *         standard storage, set this value to 0. The DB instance will
     *         require a reboot for the change in storage type to take effect.
     *         
     *         
     *         SQL Server
     *         
     *         
     *         Setting the IOPS value for the SQL Server database engine is not
     *         supported.
     *         
     *         
     *         Type: Integer
     *         
     *         
     *         If you choose to migrate your DB instance from using standard
     *         storage to using Provisioned IOPS, or from using Provisioned IOPS
     *         to using standard storage, the process can take time. The
     *         duration of the migration depends on several factors such as
     *         database load, storage size, storage type (standard or
     *         Provisioned IOPS), amount of IOPS provisioned (if any), and the
     *         number of prior scale storage operations. Typical migration times
     *         are under 24 hours, but the process can take up to several days
     *         in some cases. During the migration, the DB instance will be
     *         available for use, but might experience performance degradation.
     *         While the migration takes place, nightly backups for the instance
     *         will be suspended. No other Amazon RDS operations can take place
     *         for the instance, including modifying the instance, rebooting the
     *         instance, deleting the instance, creating a Read Replica for the
     *         instance, and creating a DB snapshot of the instance.
     */
    public Integer getIops() {
        return this.iops;
    }
    /**
     * 
     * The new Provisioned IOPS (I/O operations per second) value for the RDS
     * instance. Changing this setting does not result in an outage and the
     * change is applied during the next maintenance window unless the
     * ApplyImmediately parameter is set to true for
     * this request.
     * 
     * 
     * Default: Uses existing setting
     * 
     * 
     * Constraints: Value supplied must be at least 10% greater than the current
     * value. Values that are not at least 10% greater than the existing value
     * are rounded up so that they are 10% greater than the current value. If
     * you are migrating from Provisioned IOPS to standard storage, set this
     * value to 0. The DB instance will require a reboot for the change in
     * storage type to take effect.
     * 
     * 
     * SQL Server
     * 
     * 
     * Setting the IOPS value for the SQL Server database engine is not
     * supported.
     * 
     * 
     * Type: Integer
     * 
     * 
     * If you choose to migrate your DB instance from using standard storage to
     * using Provisioned IOPS, or from using Provisioned IOPS to using standard
     * storage, the process can take time. The duration of the migration depends
     * on several factors such as database load, storage size, storage type
     * (standard or Provisioned IOPS), amount of IOPS provisioned (if any), and
     * the number of prior scale storage operations. Typical migration times are
     * under 24 hours, but the process can take up to several days in some
     * cases. During the migration, the DB instance will be available for use,
     * but might experience performance degradation. While the migration takes
     * place, nightly backups for the instance will be suspended. No other
     * Amazon RDS operations can take place for the instance, including
     * modifying the instance, rebooting the instance, deleting the instance,
     * creating a Read Replica for the instance, and creating a DB snapshot of
     * the instance.
     * 
     * 
     * @param iops
     *        The new Provisioned IOPS (I/O operations per second) value for the
     *        RDS instance. Changing this setting does not result in an outage
     *        and the change is applied during the next maintenance window
     *        unless the ApplyImmediately parameter is set to
     *        true for this request. 
     *        
     *        Default: Uses existing setting
     *        
     *        
     *        Constraints: Value supplied must be at least 10% greater than the
     *        current value. Values that are not at least 10% greater than the
     *        existing value are rounded up so that they are 10% greater than
     *        the current value. If you are migrating from Provisioned IOPS to
     *        standard storage, set this value to 0. The DB instance will
     *        require a reboot for the change in storage type to take effect.
     *        
     *        
     *        SQL Server
     *        
     *        
     *        Setting the IOPS value for the SQL Server database engine is not
     *        supported.
     *        
     *        
     *        Type: Integer
     *        
     *        
     *        If you choose to migrate your DB instance from using standard
     *        storage to using Provisioned IOPS, or from using Provisioned IOPS
     *        to using standard storage, the process can take time. The duration
     *        of the migration depends on several factors such as database load,
     *        storage size, storage type (standard or Provisioned IOPS), amount
     *        of IOPS provisioned (if any), and the number of prior scale
     *        storage operations. Typical migration times are under 24 hours,
     *        but the process can take up to several days in some cases. During
     *        the migration, the DB instance will be available for use, but
     *        might experience performance degradation. While the migration
     *        takes place, nightly backups for the instance will be suspended.
     *        No other Amazon RDS operations can take place for the instance,
     *        including modifying the instance, rebooting the instance, deleting
     *        the instance, creating a Read Replica for the instance, and
     *        creating a DB snapshot of the instance.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withIops(Integer iops) {
        setIops(iops);
        return this;
    }
    /**
     * 
     * Indicates that the DB instance should be associated with the specified
     * option group. Changing this parameter does not result in an outage except
     * in the following case and the change is applied during the next
     * maintenance window unless the ApplyImmediately parameter is
     * set to true for this request. If the parameter change
     * results in an option group that enables OEM, this change can cause a
     * brief (sub-second) period during which new connections are rejected but
     * existing connections are not interrupted.
     * 
     * 
     * Permanent options, such as the TDE option for Oracle Advanced Security
     * TDE, cannot be removed from an option group, and that option group cannot
     * be removed from a DB instance once it is associated with a DB instance
     * 
     * 
     * @param optionGroupName
     *        Indicates that the DB instance should be associated with the
     *        specified option group. Changing this parameter does not result in
     *        an outage except in the following case and the change is applied
     *        during the next maintenance window unless the
     *        ApplyImmediately parameter is set to
     *        true for this request. If the parameter change
     *        results in an option group that enables OEM, this change can cause
     *        a brief (sub-second) period during which new connections are
     *        rejected but existing connections are not interrupted. 
     *        
     *        Permanent options, such as the TDE option for Oracle Advanced
     *        Security TDE, cannot be removed from an option group, and that
     *        option group cannot be removed from a DB instance once it is
     *        associated with a DB instance
     */
    public void setOptionGroupName(String optionGroupName) {
        this.optionGroupName = optionGroupName;
    }
    /**
     * 
     * Indicates that the DB instance should be associated with the specified
     * option group. Changing this parameter does not result in an outage except
     * in the following case and the change is applied during the next
     * maintenance window unless the ApplyImmediately parameter is
     * set to true for this request. If the parameter change
     * results in an option group that enables OEM, this change can cause a
     * brief (sub-second) period during which new connections are rejected but
     * existing connections are not interrupted.
     * 
     * 
     * Permanent options, such as the TDE option for Oracle Advanced Security
     * TDE, cannot be removed from an option group, and that option group cannot
     * be removed from a DB instance once it is associated with a DB instance
     * 
     * 
     * @return Indicates that the DB instance should be associated with the
     *         specified option group. Changing this parameter does not result
     *         in an outage except in the following case and the change is
     *         applied during the next maintenance window unless the
     *         ApplyImmediately parameter is set to
     *         true for this request. If the parameter change
     *         results in an option group that enables OEM, this change can
     *         cause a brief (sub-second) period during which new connections
     *         are rejected but existing connections are not interrupted. 
     *         
     *         Permanent options, such as the TDE option for Oracle Advanced
     *         Security TDE, cannot be removed from an option group, and that
     *         option group cannot be removed from a DB instance once it is
     *         associated with a DB instance
     */
    public String getOptionGroupName() {
        return this.optionGroupName;
    }
    /**
     * 
     * Indicates that the DB instance should be associated with the specified
     * option group. Changing this parameter does not result in an outage except
     * in the following case and the change is applied during the next
     * maintenance window unless the ApplyImmediately parameter is
     * set to true for this request. If the parameter change
     * results in an option group that enables OEM, this change can cause a
     * brief (sub-second) period during which new connections are rejected but
     * existing connections are not interrupted.
     * 
     * 
     * Permanent options, such as the TDE option for Oracle Advanced Security
     * TDE, cannot be removed from an option group, and that option group cannot
     * be removed from a DB instance once it is associated with a DB instance
     * 
     * 
     * @param optionGroupName
     *        Indicates that the DB instance should be associated with the
     *        specified option group. Changing this parameter does not result in
     *        an outage except in the following case and the change is applied
     *        during the next maintenance window unless the
     *        ApplyImmediately parameter is set to
     *        true for this request. If the parameter change
     *        results in an option group that enables OEM, this change can cause
     *        a brief (sub-second) period during which new connections are
     *        rejected but existing connections are not interrupted. 
     *        
     *        Permanent options, such as the TDE option for Oracle Advanced
     *        Security TDE, cannot be removed from an option group, and that
     *        option group cannot be removed from a DB instance once it is
     *        associated with a DB instance
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withOptionGroupName(String optionGroupName) {
        setOptionGroupName(optionGroupName);
        return this;
    }
    /**
     * 
     * The new DB instance identifier for the DB instance when renaming a DB
     * instance. When you change the DB instance identifier, an instance reboot
     * will occur immediately if you set Apply Immediately to true,
     * or will occur during the next maintenance window if
     * Apply Immediately to false. This value is stored as a
     * lowercase string.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must contain from 1 to 63 alphanumeric characters or hyphens
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @param newDBInstanceIdentifier
     *        The new DB instance identifier for the DB instance when renaming a
     *        DB instance. When you change the DB instance identifier, an
     *        instance reboot will occur immediately if you set
     *        Apply Immediately to true, or will occur during the
     *        next maintenance window if Apply Immediately to
     *        false. This value is stored as a lowercase string. 
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must contain from 1 to 63 alphanumeric characters or hyphens
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     */
    public void setNewDBInstanceIdentifier(String newDBInstanceIdentifier) {
        this.newDBInstanceIdentifier = newDBInstanceIdentifier;
    }
    /**
     * 
     * The new DB instance identifier for the DB instance when renaming a DB
     * instance. When you change the DB instance identifier, an instance reboot
     * will occur immediately if you set Apply Immediately to true,
     * or will occur during the next maintenance window if
     * Apply Immediately to false. This value is stored as a
     * lowercase string.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must contain from 1 to 63 alphanumeric characters or hyphens
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @return The new DB instance identifier for the DB instance when renaming
     *         a DB instance. When you change the DB instance identifier, an
     *         instance reboot will occur immediately if you set
     *         Apply Immediately to true, or will occur during the
     *         next maintenance window if Apply Immediately to
     *         false. This value is stored as a lowercase string. 
     *         
     *         Constraints:
     *         
     *         
     *         - 
     *         
     *         Must contain from 1 to 63 alphanumeric characters or hyphens
     *         
     *          
     *         - 
     *         
     *         First character must be a letter
     *         
     *          
     *         - 
     *         
     *         Cannot end with a hyphen or contain two consecutive hyphens
     *         
     *          
     */
    public String getNewDBInstanceIdentifier() {
        return this.newDBInstanceIdentifier;
    }
    /**
     * 
     * The new DB instance identifier for the DB instance when renaming a DB
     * instance. When you change the DB instance identifier, an instance reboot
     * will occur immediately if you set Apply Immediately to true,
     * or will occur during the next maintenance window if
     * Apply Immediately to false. This value is stored as a
     * lowercase string.
     * 
     * 
     * Constraints:
     * 
     * 
     * - 
     * 
     * Must contain from 1 to 63 alphanumeric characters or hyphens
     * 
     *  
     * - 
     * 
     * First character must be a letter
     * 
     *  
     * - 
     * 
     * Cannot end with a hyphen or contain two consecutive hyphens
     * 
     *  
     * 
     * 
     * @param newDBInstanceIdentifier
     *        The new DB instance identifier for the DB instance when renaming a
     *        DB instance. When you change the DB instance identifier, an
     *        instance reboot will occur immediately if you set
     *        Apply Immediately to true, or will occur during the
     *        next maintenance window if Apply Immediately to
     *        false. This value is stored as a lowercase string. 
     *        
     *        Constraints:
     *        
     *        
     *        - 
     *        
     *        Must contain from 1 to 63 alphanumeric characters or hyphens
     *        
     *         
     *        - 
     *        
     *        First character must be a letter
     *        
     *         
     *        - 
     *        
     *        Cannot end with a hyphen or contain two consecutive hyphens
     *        
     *         
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withNewDBInstanceIdentifier(
            String newDBInstanceIdentifier) {
        setNewDBInstanceIdentifier(newDBInstanceIdentifier);
        return this;
    }
    /**
     * 
     * Specifies the storage type to be associated with the DB instance.
     * 
     * 
     * Valid values: standard | gp2 | io1
     * 
     * 
     * If you specify io1, you must also include a value for the
     * Iops parameter.
     * 
     * 
     * Default: io1 if the Iops parameter is
     * specified; otherwise standard
     * 
     * 
     * @param storageType
     *        Specifies the storage type to be associated with the DB
     *        instance.
     *        
     *        Valid values: standard | gp2 | io1
     *        
     *        
     *        If you specify io1, you must also include a value for
     *        the Iops parameter.
     *        
     *        
     *        Default: io1 if the Iops parameter is
     *        specified; otherwise standard
     */
    public void setStorageType(String storageType) {
        this.storageType = storageType;
    }
    /**
     * 
     * Specifies the storage type to be associated with the DB instance.
     * 
     * 
     * Valid values: standard | gp2 | io1
     * 
     * 
     * If you specify io1, you must also include a value for the
     * Iops parameter.
     * 
     * 
     * Default: io1 if the Iops parameter is
     * specified; otherwise standard
     * 
     * 
     * @return Specifies the storage type to be associated with the DB
     *         instance.
     *         
     *         Valid values: standard | gp2 | io1
     *         
     *         
     *         If you specify io1, you must also include a value
     *         for the Iops parameter.
     *         
     *         
     *         Default: io1 if the Iops parameter is
     *         specified; otherwise standard
     */
    public String getStorageType() {
        return this.storageType;
    }
    /**
     * 
     * Specifies the storage type to be associated with the DB instance.
     * 
     * 
     * Valid values: standard | gp2 | io1
     * 
     * 
     * If you specify io1, you must also include a value for the
     * Iops parameter.
     * 
     * 
     * Default: io1 if the Iops parameter is
     * specified; otherwise standard
     * 
     * 
     * @param storageType
     *        Specifies the storage type to be associated with the DB
     *        instance.
     *        
     *        Valid values: standard | gp2 | io1
     *        
     *        
     *        If you specify io1, you must also include a value for
     *        the Iops parameter.
     *        
     *        
     *        Default: io1 if the Iops parameter is
     *        specified; otherwise standard
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withStorageType(String storageType) {
        setStorageType(storageType);
        return this;
    }
    /**
     * 
     * The ARN from the Key Store with which to associate the instance for TDE
     * encryption.
     * 
     * 
     * @param tdeCredentialArn
     *        The ARN from the Key Store with which to associate the instance
     *        for TDE encryption.
     */
    public void setTdeCredentialArn(String tdeCredentialArn) {
        this.tdeCredentialArn = tdeCredentialArn;
    }
    /**
     * 
     * The ARN from the Key Store with which to associate the instance for TDE
     * encryption.
     * 
     * 
     * @return The ARN from the Key Store with which to associate the instance
     *         for TDE encryption.
     */
    public String getTdeCredentialArn() {
        return this.tdeCredentialArn;
    }
    /**
     * 
     * The ARN from the Key Store with which to associate the instance for TDE
     * encryption.
     * 
     * 
     * @param tdeCredentialArn
     *        The ARN from the Key Store with which to associate the instance
     *        for TDE encryption.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withTdeCredentialArn(String tdeCredentialArn) {
        setTdeCredentialArn(tdeCredentialArn);
        return this;
    }
    /**
     * 
     * The password for the given ARN from the Key Store in order to access the
     * device.
     * 
     * 
     * @param tdeCredentialPassword
     *        The password for the given ARN from the Key Store in order to
     *        access the device.
     */
    public void setTdeCredentialPassword(String tdeCredentialPassword) {
        this.tdeCredentialPassword = tdeCredentialPassword;
    }
    /**
     * 
     * The password for the given ARN from the Key Store in order to access the
     * device.
     * 
     * 
     * @return The password for the given ARN from the Key Store in order to
     *         access the device.
     */
    public String getTdeCredentialPassword() {
        return this.tdeCredentialPassword;
    }
    /**
     * 
     * The password for the given ARN from the Key Store in order to access the
     * device.
     * 
     * 
     * @param tdeCredentialPassword
     *        The password for the given ARN from the Key Store in order to
     *        access the device.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withTdeCredentialPassword(
            String tdeCredentialPassword) {
        setTdeCredentialPassword(tdeCredentialPassword);
        return this;
    }
    /**
     * 
     * Indicates the certificate that needs to be associated with the instance.
     * 
     * 
     * @param cACertificateIdentifier
     *        Indicates the certificate that needs to be associated with the
     *        instance.
     */
    public void setCACertificateIdentifier(String cACertificateIdentifier) {
        this.cACertificateIdentifier = cACertificateIdentifier;
    }
    /**
     * 
     * Indicates the certificate that needs to be associated with the instance.
     * 
     * 
     * @return Indicates the certificate that needs to be associated with the
     *         instance.
     */
    public String getCACertificateIdentifier() {
        return this.cACertificateIdentifier;
    }
    /**
     * 
     * Indicates the certificate that needs to be associated with the instance.
     * 
     * 
     * @param cACertificateIdentifier
     *        Indicates the certificate that needs to be associated with the
     *        instance.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withCACertificateIdentifier(
            String cACertificateIdentifier) {
        setCACertificateIdentifier(cACertificateIdentifier);
        return this;
    }
    /**
     * 
     * Specify the Active Directory Domain to move the instance to.
     * 
     * 
     * The specified Active Directory Domain must be created prior to this
     * operation. Currently only a SQL Server instance can be created in a
     * Active Directory Domain.
     * 
     * 
     * @param domain
     *        Specify the Active Directory Domain to move the instance to.
     *        
     *        The specified Active Directory Domain must be created prior to
     *        this operation. Currently only a SQL Server instance can be
     *        created in a Active Directory Domain.
     */
    public void setDomain(String domain) {
        this.domain = domain;
    }
    /**
     * 
     * Specify the Active Directory Domain to move the instance to.
     * 
     * 
     * The specified Active Directory Domain must be created prior to this
     * operation. Currently only a SQL Server instance can be created in a
     * Active Directory Domain.
     * 
     * 
     * @return Specify the Active Directory Domain to move the instance to.
     *         
     *         The specified Active Directory Domain must be created prior to
     *         this operation. Currently only a SQL Server instance can be
     *         created in a Active Directory Domain.
     */
    public String getDomain() {
        return this.domain;
    }
    /**
     * 
     * Specify the Active Directory Domain to move the instance to.
     * 
     * 
     * The specified Active Directory Domain must be created prior to this
     * operation. Currently only a SQL Server instance can be created in a
     * Active Directory Domain.
     * 
     * 
     * @param domain
     *        Specify the Active Directory Domain to move the instance to.
     *        
     *        The specified Active Directory Domain must be created prior to
     *        this operation. Currently only a SQL Server instance can be
     *        created in a Active Directory Domain.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withDomain(String domain) {
        setDomain(domain);
        return this;
    }
    /**
     * 
     * True to copy all tags from the DB instance to snapshots of the DB
     * instance; otherwise false. The default is false.
     * 
     * 
     * @param copyTagsToSnapshot
     *        True to copy all tags from the DB instance to snapshots of the DB
     *        instance; otherwise false. The default is false.
     */
    public void setCopyTagsToSnapshot(Boolean copyTagsToSnapshot) {
        this.copyTagsToSnapshot = copyTagsToSnapshot;
    }
    /**
     * 
     * True to copy all tags from the DB instance to snapshots of the DB
     * instance; otherwise false. The default is false.
     * 
     * 
     * @return True to copy all tags from the DB instance to snapshots of the DB
     *         instance; otherwise false. The default is false.
     */
    public Boolean getCopyTagsToSnapshot() {
        return this.copyTagsToSnapshot;
    }
    /**
     * 
     * True to copy all tags from the DB instance to snapshots of the DB
     * instance; otherwise false. The default is false.
     * 
     * 
     * @param copyTagsToSnapshot
     *        True to copy all tags from the DB instance to snapshots of the DB
     *        instance; otherwise false. The default is false.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withCopyTagsToSnapshot(
            Boolean copyTagsToSnapshot) {
        setCopyTagsToSnapshot(copyTagsToSnapshot);
        return this;
    }
    /**
     * 
     * True to copy all tags from the DB instance to snapshots of the DB
     * instance; otherwise false. The default is false.
     * 
     * 
     * @return True to copy all tags from the DB instance to snapshots of the DB
     *         instance; otherwise false. The default is false.
     */
    public Boolean isCopyTagsToSnapshot() {
        return this.copyTagsToSnapshot;
    }
    /**
     * 
     * The interval, in seconds, between points when Enhanced Monitoring metrics
     * are collected for the DB instance. To disable collecting Enhanced
     * Monitoring metrics, specify 0. The default is 0.
     * 
     * 
     * If MonitoringRoleArn is specified, then you must also set
     * MonitoringInterval to a value other than 0.
     * 
     * 
     * Valid Values: 0, 1, 5, 10, 15, 30, 60
     * 
     * 
     * @param monitoringInterval
     *        The interval, in seconds, between points when Enhanced Monitoring
     *        metrics are collected for the DB instance. To disable collecting
     *        Enhanced Monitoring metrics, specify 0. The default is 0.
     *        
     *        If MonitoringRoleArn is specified, then you must also
     *        set MonitoringInterval to a value other than 0.
     *        
     *        
     *        Valid Values: 0, 1, 5, 10, 15, 30, 60
     */
    public void setMonitoringInterval(Integer monitoringInterval) {
        this.monitoringInterval = monitoringInterval;
    }
    /**
     * 
     * The interval, in seconds, between points when Enhanced Monitoring metrics
     * are collected for the DB instance. To disable collecting Enhanced
     * Monitoring metrics, specify 0. The default is 0.
     * 
     * 
     * If MonitoringRoleArn is specified, then you must also set
     * MonitoringInterval to a value other than 0.
     * 
     * 
     * Valid Values: 0, 1, 5, 10, 15, 30, 60
     * 
     * 
     * @return The interval, in seconds, between points when Enhanced Monitoring
     *         metrics are collected for the DB instance. To disable collecting
     *         Enhanced Monitoring metrics, specify 0. The default is 0.
     *         
     *         If MonitoringRoleArn is specified, then you must
     *         also set MonitoringInterval to a value other than 0.
     *         
     *         
     *         Valid Values: 0, 1, 5, 10, 15, 30, 60
     */
    public Integer getMonitoringInterval() {
        return this.monitoringInterval;
    }
    /**
     * 
     * The interval, in seconds, between points when Enhanced Monitoring metrics
     * are collected for the DB instance. To disable collecting Enhanced
     * Monitoring metrics, specify 0. The default is 0.
     * 
     * 
     * If MonitoringRoleArn is specified, then you must also set
     * MonitoringInterval to a value other than 0.
     * 
     * 
     * Valid Values: 0, 1, 5, 10, 15, 30, 60
     * 
     * 
     * @param monitoringInterval
     *        The interval, in seconds, between points when Enhanced Monitoring
     *        metrics are collected for the DB instance. To disable collecting
     *        Enhanced Monitoring metrics, specify 0. The default is 0.
     *        
     *        If MonitoringRoleArn is specified, then you must also
     *        set MonitoringInterval to a value other than 0.
     *        
     *        
     *        Valid Values: 0, 1, 5, 10, 15, 30, 60
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withMonitoringInterval(
            Integer monitoringInterval) {
        setMonitoringInterval(monitoringInterval);
        return this;
    }
    /**
     * 
     * The port number on which the database accepts connections.
     * 
     * 
     * The value of the DBPortNumber parameter must not match any
     * of the port values specified for options in the option group for the DB
     * instance.
     * 
     * 
     * Your database will restart when you change the DBPortNumber
     * value regardless of the value of the ApplyImmediately
     * parameter.
     * 
     * 
     * MySQL
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * MariaDB
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * PostgreSQL
     * 
     * 
     * Default: 5432
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * Type: Integer
     * 
     * 
     * Oracle
     * 
     * 
     * Default: 1521
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * SQL Server
     * 
     * 
     * Default: 1433
     * 
     * 
     * Valid Values: 1150-65535 except for 1434,
     * 3389, 47001, 49152, and
     * 49152 through 49156.
     * 
     * 
     * Amazon Aurora
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * @param dBPortNumber
     *        The port number on which the database accepts connections.
     *        
     *        The value of the DBPortNumber parameter must not
     *        match any of the port values specified for options in the option
     *        group for the DB instance.
     *        
     *        
     *        Your database will restart when you change the
     *        DBPortNumber value regardless of the value of the
     *        ApplyImmediately parameter.
     *        
     *        
     *        MySQL
     *        
     *        
     *        Default: 3306
     *        
     *        
     *        Valid Values: 1150-65535
     *        
     *        
     *        MariaDB
     *        
     *        
     *        Default: 3306
     *        
     *        
     *        Valid Values: 1150-65535
     *        
     *        
     *        PostgreSQL
     *        
     *        
     *        Default: 5432
     *        
     *        
     *        Valid Values: 1150-65535
     *        
     *        
     *        Type: Integer
     *        
     *        
     *        Oracle
     *        
     *        
     *        Default: 1521
     *        
     *        
     *        Valid Values: 1150-65535
     *        
     *        
     *        SQL Server
     *        
     *        
     *        Default: 1433
     *        
     *        
     *        Valid Values: 1150-65535 except for 1434, 3389, 47001, 49152, and
     *        49152 through 49156.
     *        
     *        
     *        Amazon Aurora
     *        
     *        
     *        Default: 3306
     *        
     *        
     *        Valid Values: 1150-65535
     */
    public void setDBPortNumber(Integer dBPortNumber) {
        this.dBPortNumber = dBPortNumber;
    }
    /**
     * 
     * The port number on which the database accepts connections.
     * 
     * 
     * The value of the DBPortNumber parameter must not match any
     * of the port values specified for options in the option group for the DB
     * instance.
     * 
     * 
     * Your database will restart when you change the DBPortNumber
     * value regardless of the value of the ApplyImmediately
     * parameter.
     * 
     * 
     * MySQL
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * MariaDB
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * PostgreSQL
     * 
     * 
     * Default: 5432
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * Type: Integer
     * 
     * 
     * Oracle
     * 
     * 
     * Default: 1521
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * SQL Server
     * 
     * 
     * Default: 1433
     * 
     * 
     * Valid Values: 1150-65535 except for 1434,
     * 3389, 47001, 49152, and
     * 49152 through 49156.
     * 
     * 
     * Amazon Aurora
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * @return The port number on which the database accepts connections.
     *         
     *         The value of the DBPortNumber parameter must not
     *         match any of the port values specified for options in the option
     *         group for the DB instance.
     *         
     *         
     *         Your database will restart when you change the
     *         DBPortNumber value regardless of the value of the
     *         ApplyImmediately parameter.
     *         
     *         
     *         MySQL
     *         
     *         
     *         Default: 3306
     *         
     *         
     *         Valid Values: 1150-65535
     *         
     *         
     *         MariaDB
     *         
     *         
     *         Default: 3306
     *         
     *         
     *         Valid Values: 1150-65535
     *         
     *         
     *         PostgreSQL
     *         
     *         
     *         Default: 5432
     *         
     *         
     *         Valid Values: 1150-65535
     *         
     *         
     *         Type: Integer
     *         
     *         
     *         Oracle
     *         
     *         
     *         Default: 1521
     *         
     *         
     *         Valid Values: 1150-65535
     *         
     *         
     *         SQL Server
     *         
     *         
     *         Default: 1433
     *         
     *         
     *         Valid Values: 1150-65535 except for
     *         1434, 3389, 47001,
     *         49152, and 49152 through
     *         49156.
     *         
     *         
     *         Amazon Aurora
     *         
     *         
     *         Default: 3306
     *         
     *         
     *         Valid Values: 1150-65535
     */
    public Integer getDBPortNumber() {
        return this.dBPortNumber;
    }
    /**
     * 
     * The port number on which the database accepts connections.
     * 
     * 
     * The value of the DBPortNumber parameter must not match any
     * of the port values specified for options in the option group for the DB
     * instance.
     * 
     * 
     * Your database will restart when you change the DBPortNumber
     * value regardless of the value of the ApplyImmediately
     * parameter.
     * 
     * 
     * MySQL
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * MariaDB
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * PostgreSQL
     * 
     * 
     * Default: 5432
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * Type: Integer
     * 
     * 
     * Oracle
     * 
     * 
     * Default: 1521
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * SQL Server
     * 
     * 
     * Default: 1433
     * 
     * 
     * Valid Values: 1150-65535 except for 1434,
     * 3389, 47001, 49152, and
     * 49152 through 49156.
     * 
     * 
     * Amazon Aurora
     * 
     * 
     * Default: 3306
     * 
     * 
     * Valid Values: 1150-65535
     * 
     * 
     * @param dBPortNumber
     *        The port number on which the database accepts connections.
     *        
     *        The value of the DBPortNumber parameter must not
     *        match any of the port values specified for options in the option
     *        group for the DB instance.
     *        
     *        
     *        Your database will restart when you change the
     *        DBPortNumber value regardless of the value of the
     *        ApplyImmediately parameter.
     *        
     *        
     *        MySQL
     *        
     *        
     *        Default: 3306
     *        
     *        
     *        Valid Values: 1150-65535
     *        
     *        
     *        MariaDB
     *        
     *        
     *        Default: 3306
     *        
     *        
     *        Valid Values: 1150-65535
     *        
     *        
     *        PostgreSQL
     *        
     *        
     *        Default: 5432
     *        
     *        
     *        Valid Values: 1150-65535
     *        
     *        
     *        Type: Integer
     *        
     *        
     *        Oracle
     *        
     *        
     *        Default: 1521
     *        
     *        
     *        Valid Values: 1150-65535
     *        
     *        
     *        SQL Server
     *        
     *        
     *        Default: 1433
     *        
     *        
     *        Valid Values: 1150-65535 except for 1434, 3389, 47001, 49152, and
     *        49152 through 49156.
     *        
     *        
     *        Amazon Aurora
     *        
     *        
     *        Default: 3306
     *        
     *        
     *        Valid Values: 1150-65535
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withDBPortNumber(Integer dBPortNumber) {
        setDBPortNumber(dBPortNumber);
        return this;
    }
    /**
     * 
     * Boolean value that indicates if the DB instance has a publicly resolvable
     * DNS name. Set to True to make the DB instance
     * Internet-facing with a publicly resolvable DNS name, which resolves to a
     * public IP address. Set to False to make the DB instance
     * internal with a DNS name that resolves to a private IP address.
     * 
     * 
     * PubliclyAccessible only applies to DB instances in a VPC.
     * The DB instance must be part of a public subnet and
     * PubliclyAccessible must be true in order for it to be
     * publicly accessible.
     * 
     * 
     * Changes to the PubliclyAccessible parameter are applied
     * immediately regardless of the value of the ApplyImmediately
     * parameter.
     * 
     * 
     * Default: false
     * 
     * 
     * @param publiclyAccessible
     *        Boolean value that indicates if the DB instance has a publicly
     *        resolvable DNS name. Set to True to make the DB
     *        instance Internet-facing with a publicly resolvable DNS name,
     *        which resolves to a public IP address. Set to False
     *        to make the DB instance internal with a DNS name that resolves to
     *        a private IP address. 
     *        
     *        PubliclyAccessible only applies to DB instances in a
     *        VPC. The DB instance must be part of a public subnet and
     *        PubliclyAccessible must be true in order for it to be
     *        publicly accessible.
     *        
     *        
     *        Changes to the PubliclyAccessible parameter are
     *        applied immediately regardless of the value of the
     *        ApplyImmediately parameter.
     *        
     *        
     *        Default: false
     */
    public void setPubliclyAccessible(Boolean publiclyAccessible) {
        this.publiclyAccessible = publiclyAccessible;
    }
    /**
     * 
     * Boolean value that indicates if the DB instance has a publicly resolvable
     * DNS name. Set to True to make the DB instance
     * Internet-facing with a publicly resolvable DNS name, which resolves to a
     * public IP address. Set to False to make the DB instance
     * internal with a DNS name that resolves to a private IP address.
     * 
     * 
     * PubliclyAccessible only applies to DB instances in a VPC.
     * The DB instance must be part of a public subnet and
     * PubliclyAccessible must be true in order for it to be
     * publicly accessible.
     * 
     * 
     * Changes to the PubliclyAccessible parameter are applied
     * immediately regardless of the value of the ApplyImmediately
     * parameter.
     * 
     * 
     * Default: false
     * 
     * 
     * @return Boolean value that indicates if the DB instance has a publicly
     *         resolvable DNS name. Set to True to make the DB
     *         instance Internet-facing with a publicly resolvable DNS name,
     *         which resolves to a public IP address. Set to False
     *         to make the DB instance internal with a DNS name that resolves to
     *         a private IP address. 
     *         
     *         PubliclyAccessible only applies to DB instances in a
     *         VPC. The DB instance must be part of a public subnet and
     *         PubliclyAccessible must be true in order for it to
     *         be publicly accessible.
     *         
     *         
     *         Changes to the PubliclyAccessible parameter are
     *         applied immediately regardless of the value of the
     *         ApplyImmediately parameter.
     *         
     *         
     *         Default: false
     */
    public Boolean getPubliclyAccessible() {
        return this.publiclyAccessible;
    }
    /**
     * 
     * Boolean value that indicates if the DB instance has a publicly resolvable
     * DNS name. Set to True to make the DB instance
     * Internet-facing with a publicly resolvable DNS name, which resolves to a
     * public IP address. Set to False to make the DB instance
     * internal with a DNS name that resolves to a private IP address.
     * 
     * 
     * PubliclyAccessible only applies to DB instances in a VPC.
     * The DB instance must be part of a public subnet and
     * PubliclyAccessible must be true in order for it to be
     * publicly accessible.
     * 
     * 
     * Changes to the PubliclyAccessible parameter are applied
     * immediately regardless of the value of the ApplyImmediately
     * parameter.
     * 
     * 
     * Default: false
     * 
     * 
     * @param publiclyAccessible
     *        Boolean value that indicates if the DB instance has a publicly
     *        resolvable DNS name. Set to True to make the DB
     *        instance Internet-facing with a publicly resolvable DNS name,
     *        which resolves to a public IP address. Set to False
     *        to make the DB instance internal with a DNS name that resolves to
     *        a private IP address. 
     *        
     *        PubliclyAccessible only applies to DB instances in a
     *        VPC. The DB instance must be part of a public subnet and
     *        PubliclyAccessible must be true in order for it to be
     *        publicly accessible.
     *        
     *        
     *        Changes to the PubliclyAccessible parameter are
     *        applied immediately regardless of the value of the
     *        ApplyImmediately parameter.
     *        
     *        
     *        Default: false
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withPubliclyAccessible(
            Boolean publiclyAccessible) {
        setPubliclyAccessible(publiclyAccessible);
        return this;
    }
    /**
     * 
     * Boolean value that indicates if the DB instance has a publicly resolvable
     * DNS name. Set to True to make the DB instance
     * Internet-facing with a publicly resolvable DNS name, which resolves to a
     * public IP address. Set to False to make the DB instance
     * internal with a DNS name that resolves to a private IP address.
     * 
     * 
     * PubliclyAccessible only applies to DB instances in a VPC.
     * The DB instance must be part of a public subnet and
     * PubliclyAccessible must be true in order for it to be
     * publicly accessible.
     * 
     * 
     * Changes to the PubliclyAccessible parameter are applied
     * immediately regardless of the value of the ApplyImmediately
     * parameter.
     * 
     * 
     * Default: false
     * 
     * 
     * @return Boolean value that indicates if the DB instance has a publicly
     *         resolvable DNS name. Set to True to make the DB
     *         instance Internet-facing with a publicly resolvable DNS name,
     *         which resolves to a public IP address. Set to False
     *         to make the DB instance internal with a DNS name that resolves to
     *         a private IP address. 
     *         
     *         PubliclyAccessible only applies to DB instances in a
     *         VPC. The DB instance must be part of a public subnet and
     *         PubliclyAccessible must be true in order for it to
     *         be publicly accessible.
     *         
     *         
     *         Changes to the PubliclyAccessible parameter are
     *         applied immediately regardless of the value of the
     *         ApplyImmediately parameter.
     *         
     *         
     *         Default: false
     */
    public Boolean isPubliclyAccessible() {
        return this.publiclyAccessible;
    }
    /**
     * 
     * The ARN for the IAM role that permits RDS to send enhanced monitoring
     * metrics to CloudWatch Logs. For example,
     * arn:aws:iam:123456789012:role/emaccess. For information on
     * creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.
     * 
     * 
     * If MonitoringInterval is set to a value other than 0, then
     * you must supply a MonitoringRoleArn value.
     * 
     * 
     * @param monitoringRoleArn
     *        The ARN for the IAM role that permits RDS to send enhanced
     *        monitoring metrics to CloudWatch Logs. For example,
     *        arn:aws:iam:123456789012:role/emaccess. For
     *        information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.
     *        
     *        If MonitoringInterval is set to a value other than 0,
     *        then you must supply a MonitoringRoleArn value.
     */
    public void setMonitoringRoleArn(String monitoringRoleArn) {
        this.monitoringRoleArn = monitoringRoleArn;
    }
    /**
     * 
     * The ARN for the IAM role that permits RDS to send enhanced monitoring
     * metrics to CloudWatch Logs. For example,
     * arn:aws:iam:123456789012:role/emaccess. For information on
     * creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.
     * 
     * 
     * If MonitoringInterval is set to a value other than 0, then
     * you must supply a MonitoringRoleArn value.
     * 
     * 
     * @return The ARN for the IAM role that permits RDS to send enhanced
     *         monitoring metrics to CloudWatch Logs. For example,
     *         arn:aws:iam:123456789012:role/emaccess. For
     *         information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced
     *         Monitoring.
     *         
     *         If MonitoringInterval is set to a value other than
     *         0, then you must supply a MonitoringRoleArn value.
     */
    public String getMonitoringRoleArn() {
        return this.monitoringRoleArn;
    }
    /**
     * 
     * The ARN for the IAM role that permits RDS to send enhanced monitoring
     * metrics to CloudWatch Logs. For example,
     * arn:aws:iam:123456789012:role/emaccess. For information on
     * creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.
     * 
     * 
     * If MonitoringInterval is set to a value other than 0, then
     * you must supply a MonitoringRoleArn value.
     * 
     * 
     * @param monitoringRoleArn
     *        The ARN for the IAM role that permits RDS to send enhanced
     *        monitoring metrics to CloudWatch Logs. For example,
     *        arn:aws:iam:123456789012:role/emaccess. For
     *        information on creating a monitoring role, go to To create an IAM role for Amazon RDS Enhanced Monitoring.
     *        
     *        If MonitoringInterval is set to a value other than 0,
     *        then you must supply a MonitoringRoleArn value.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withMonitoringRoleArn(
            String monitoringRoleArn) {
        setMonitoringRoleArn(monitoringRoleArn);
        return this;
    }
    /**
     * 
     * Specify the name of the IAM role to be used when making API calls to the
     * Directory Service.
     * 
     * 
     * @param domainIAMRoleName
     *        Specify the name of the IAM role to be used when making API calls
     *        to the Directory Service.
     */
    public void setDomainIAMRoleName(String domainIAMRoleName) {
        this.domainIAMRoleName = domainIAMRoleName;
    }
    /**
     * 
     * Specify the name of the IAM role to be used when making API calls to the
     * Directory Service.
     * 
     * 
     * @return Specify the name of the IAM role to be used when making API calls
     *         to the Directory Service.
     */
    public String getDomainIAMRoleName() {
        return this.domainIAMRoleName;
    }
    /**
     * 
     * Specify the name of the IAM role to be used when making API calls to the
     * Directory Service.
     * 
     * 
     * @param domainIAMRoleName
     *        Specify the name of the IAM role to be used when making API calls
     *        to the Directory Service.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withDomainIAMRoleName(
            String domainIAMRoleName) {
        setDomainIAMRoleName(domainIAMRoleName);
        return this;
    }
    /**
     * 
     * A value that specifies the order in which an Aurora Replica is promoted
     * to the primary instance after a failure of the existing primary instance.
     * For more information, see  Fault Tolerance for an Aurora DB Cluster.
     * 
     * 
     * Default: 1
     * 
     * 
     * Valid Values: 0 - 15
     * 
     * 
     * @param promotionTier
     *        A value that specifies the order in which an Aurora Replica is
     *        promoted to the primary instance after a failure of the existing
     *        primary instance. For more information, see  Fault Tolerance for an Aurora DB Cluster. 
     *        
     *        Default: 1
     *        
     *        
     *        Valid Values: 0 - 15
     */
    public void setPromotionTier(Integer promotionTier) {
        this.promotionTier = promotionTier;
    }
    /**
     * 
     * A value that specifies the order in which an Aurora Replica is promoted
     * to the primary instance after a failure of the existing primary instance.
     * For more information, see  Fault Tolerance for an Aurora DB Cluster.
     * 
     * 
     * Default: 1
     * 
     * 
     * Valid Values: 0 - 15
     * 
     * 
     * @return A value that specifies the order in which an Aurora Replica is
     *         promoted to the primary instance after a failure of the existing
     *         primary instance. For more information, see  Fault Tolerance for an Aurora DB Cluster. 
     *         
     *         Default: 1
     *         
     *         
     *         Valid Values: 0 - 15
     */
    public Integer getPromotionTier() {
        return this.promotionTier;
    }
    /**
     * 
     * A value that specifies the order in which an Aurora Replica is promoted
     * to the primary instance after a failure of the existing primary instance.
     * For more information, see  Fault Tolerance for an Aurora DB Cluster.
     * 
     * 
     * Default: 1
     * 
     * 
     * Valid Values: 0 - 15
     * 
     * 
     * @param promotionTier
     *        A value that specifies the order in which an Aurora Replica is
     *        promoted to the primary instance after a failure of the existing
     *        primary instance. For more information, see  Fault Tolerance for an Aurora DB Cluster. 
     *        
     *        Default: 1
     *        
     *        
     *        Valid Values: 0 - 15
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public ModifyDBInstanceRequest withPromotionTier(Integer promotionTier) {
        setPromotionTier(promotionTier);
        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 (getDBInstanceIdentifier() != null)
            sb.append("DBInstanceIdentifier: " + getDBInstanceIdentifier()
                    + ",");
        if (getAllocatedStorage() != null)
            sb.append("AllocatedStorage: " + getAllocatedStorage() + ",");
        if (getDBInstanceClass() != null)
            sb.append("DBInstanceClass: " + getDBInstanceClass() + ",");
        if (getDBSecurityGroups() != null)
            sb.append("DBSecurityGroups: " + getDBSecurityGroups() + ",");
        if (getVpcSecurityGroupIds() != null)
            sb.append("VpcSecurityGroupIds: " + getVpcSecurityGroupIds() + ",");
        if (getApplyImmediately() != null)
            sb.append("ApplyImmediately: " + getApplyImmediately() + ",");
        if (getMasterUserPassword() != null)
            sb.append("MasterUserPassword: " + getMasterUserPassword() + ",");
        if (getDBParameterGroupName() != null)
            sb.append("DBParameterGroupName: " + getDBParameterGroupName()
                    + ",");
        if (getBackupRetentionPeriod() != null)
            sb.append("BackupRetentionPeriod: " + getBackupRetentionPeriod()
                    + ",");
        if (getPreferredBackupWindow() != null)
            sb.append("PreferredBackupWindow: " + getPreferredBackupWindow()
                    + ",");
        if (getPreferredMaintenanceWindow() != null)
            sb.append("PreferredMaintenanceWindow: "
                    + getPreferredMaintenanceWindow() + ",");
        if (getMultiAZ() != null)
            sb.append("MultiAZ: " + getMultiAZ() + ",");
        if (getEngineVersion() != null)
            sb.append("EngineVersion: " + getEngineVersion() + ",");
        if (getAllowMajorVersionUpgrade() != null)
            sb.append("AllowMajorVersionUpgrade: "
                    + getAllowMajorVersionUpgrade() + ",");
        if (getAutoMinorVersionUpgrade() != null)
            sb.append("AutoMinorVersionUpgrade: "
                    + getAutoMinorVersionUpgrade() + ",");
        if (getIops() != null)
            sb.append("Iops: " + getIops() + ",");
        if (getOptionGroupName() != null)
            sb.append("OptionGroupName: " + getOptionGroupName() + ",");
        if (getNewDBInstanceIdentifier() != null)
            sb.append("NewDBInstanceIdentifier: "
                    + getNewDBInstanceIdentifier() + ",");
        if (getStorageType() != null)
            sb.append("StorageType: " + getStorageType() + ",");
        if (getTdeCredentialArn() != null)
            sb.append("TdeCredentialArn: " + getTdeCredentialArn() + ",");
        if (getTdeCredentialPassword() != null)
            sb.append("TdeCredentialPassword: " + getTdeCredentialPassword()
                    + ",");
        if (getCACertificateIdentifier() != null)
            sb.append("CACertificateIdentifier: "
                    + getCACertificateIdentifier() + ",");
        if (getDomain() != null)
            sb.append("Domain: " + getDomain() + ",");
        if (getCopyTagsToSnapshot() != null)
            sb.append("CopyTagsToSnapshot: " + getCopyTagsToSnapshot() + ",");
        if (getMonitoringInterval() != null)
            sb.append("MonitoringInterval: " + getMonitoringInterval() + ",");
        if (getDBPortNumber() != null)
            sb.append("DBPortNumber: " + getDBPortNumber() + ",");
        if (getPubliclyAccessible() != null)
            sb.append("PubliclyAccessible: " + getPubliclyAccessible() + ",");
        if (getMonitoringRoleArn() != null)
            sb.append("MonitoringRoleArn: " + getMonitoringRoleArn() + ",");
        if (getDomainIAMRoleName() != null)
            sb.append("DomainIAMRoleName: " + getDomainIAMRoleName() + ",");
        if (getPromotionTier() != null)
            sb.append("PromotionTier: " + getPromotionTier());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof ModifyDBInstanceRequest == false)
            return false;
        ModifyDBInstanceRequest other = (ModifyDBInstanceRequest) obj;
        if (other.getDBInstanceIdentifier() == null
                ^ this.getDBInstanceIdentifier() == null)
            return false;
        if (other.getDBInstanceIdentifier() != null
                && other.getDBInstanceIdentifier().equals(
                        this.getDBInstanceIdentifier()) == false)
            return false;
        if (other.getAllocatedStorage() == null
                ^ this.getAllocatedStorage() == null)
            return false;
        if (other.getAllocatedStorage() != null
                && other.getAllocatedStorage().equals(
                        this.getAllocatedStorage()) == false)
            return false;
        if (other.getDBInstanceClass() == null
                ^ this.getDBInstanceClass() == null)
            return false;
        if (other.getDBInstanceClass() != null
                && other.getDBInstanceClass().equals(this.getDBInstanceClass()) == false)
            return false;
        if (other.getDBSecurityGroups() == null
                ^ this.getDBSecurityGroups() == null)
            return false;
        if (other.getDBSecurityGroups() != null
                && other.getDBSecurityGroups().equals(
                        this.getDBSecurityGroups()) == false)
            return false;
        if (other.getVpcSecurityGroupIds() == null
                ^ this.getVpcSecurityGroupIds() == null)
            return false;
        if (other.getVpcSecurityGroupIds() != null
                && other.getVpcSecurityGroupIds().equals(
                        this.getVpcSecurityGroupIds()) == false)
            return false;
        if (other.getApplyImmediately() == null
                ^ this.getApplyImmediately() == null)
            return false;
        if (other.getApplyImmediately() != null
                && other.getApplyImmediately().equals(
                        this.getApplyImmediately()) == false)
            return false;
        if (other.getMasterUserPassword() == null
                ^ this.getMasterUserPassword() == null)
            return false;
        if (other.getMasterUserPassword() != null
                && other.getMasterUserPassword().equals(
                        this.getMasterUserPassword()) == false)
            return false;
        if (other.getDBParameterGroupName() == null
                ^ this.getDBParameterGroupName() == null)
            return false;
        if (other.getDBParameterGroupName() != null
                && other.getDBParameterGroupName().equals(
                        this.getDBParameterGroupName()) == false)
            return false;
        if (other.getBackupRetentionPeriod() == null
                ^ this.getBackupRetentionPeriod() == null)
            return false;
        if (other.getBackupRetentionPeriod() != null
                && other.getBackupRetentionPeriod().equals(
                        this.getBackupRetentionPeriod()) == false)
            return false;
        if (other.getPreferredBackupWindow() == null
                ^ this.getPreferredBackupWindow() == null)
            return false;
        if (other.getPreferredBackupWindow() != null
                && other.getPreferredBackupWindow().equals(
                        this.getPreferredBackupWindow()) == false)
            return false;
        if (other.getPreferredMaintenanceWindow() == null
                ^ this.getPreferredMaintenanceWindow() == null)
            return false;
        if (other.getPreferredMaintenanceWindow() != null
                && other.getPreferredMaintenanceWindow().equals(
                        this.getPreferredMaintenanceWindow()) == false)
            return false;
        if (other.getMultiAZ() == null ^ this.getMultiAZ() == null)
            return false;
        if (other.getMultiAZ() != null
                && other.getMultiAZ().equals(this.getMultiAZ()) == false)
            return false;
        if (other.getEngineVersion() == null ^ this.getEngineVersion() == null)
            return false;
        if (other.getEngineVersion() != null
                && other.getEngineVersion().equals(this.getEngineVersion()) == false)
            return false;
        if (other.getAllowMajorVersionUpgrade() == null
                ^ this.getAllowMajorVersionUpgrade() == null)
            return false;
        if (other.getAllowMajorVersionUpgrade() != null
                && other.getAllowMajorVersionUpgrade().equals(
                        this.getAllowMajorVersionUpgrade()) == false)
            return false;
        if (other.getAutoMinorVersionUpgrade() == null
                ^ this.getAutoMinorVersionUpgrade() == null)
            return false;
        if (other.getAutoMinorVersionUpgrade() != null
                && other.getAutoMinorVersionUpgrade().equals(
                        this.getAutoMinorVersionUpgrade()) == false)
            return false;
        if (other.getIops() == null ^ this.getIops() == null)
            return false;
        if (other.getIops() != null
                && other.getIops().equals(this.getIops()) == false)
            return false;
        if (other.getOptionGroupName() == null
                ^ this.getOptionGroupName() == null)
            return false;
        if (other.getOptionGroupName() != null
                && other.getOptionGroupName().equals(this.getOptionGroupName()) == false)
            return false;
        if (other.getNewDBInstanceIdentifier() == null
                ^ this.getNewDBInstanceIdentifier() == null)
            return false;
        if (other.getNewDBInstanceIdentifier() != null
                && other.getNewDBInstanceIdentifier().equals(
                        this.getNewDBInstanceIdentifier()) == false)
            return false;
        if (other.getStorageType() == null ^ this.getStorageType() == null)
            return false;
        if (other.getStorageType() != null
                && other.getStorageType().equals(this.getStorageType()) == false)
            return false;
        if (other.getTdeCredentialArn() == null
                ^ this.getTdeCredentialArn() == null)
            return false;
        if (other.getTdeCredentialArn() != null
                && other.getTdeCredentialArn().equals(
                        this.getTdeCredentialArn()) == false)
            return false;
        if (other.getTdeCredentialPassword() == null
                ^ this.getTdeCredentialPassword() == null)
            return false;
        if (other.getTdeCredentialPassword() != null
                && other.getTdeCredentialPassword().equals(
                        this.getTdeCredentialPassword()) == false)
            return false;
        if (other.getCACertificateIdentifier() == null
                ^ this.getCACertificateIdentifier() == null)
            return false;
        if (other.getCACertificateIdentifier() != null
                && other.getCACertificateIdentifier().equals(
                        this.getCACertificateIdentifier()) == false)
            return false;
        if (other.getDomain() == null ^ this.getDomain() == null)
            return false;
        if (other.getDomain() != null
                && other.getDomain().equals(this.getDomain()) == false)
            return false;
        if (other.getCopyTagsToSnapshot() == null
                ^ this.getCopyTagsToSnapshot() == null)
            return false;
        if (other.getCopyTagsToSnapshot() != null
                && other.getCopyTagsToSnapshot().equals(
                        this.getCopyTagsToSnapshot()) == false)
            return false;
        if (other.getMonitoringInterval() == null
                ^ this.getMonitoringInterval() == null)
            return false;
        if (other.getMonitoringInterval() != null
                && other.getMonitoringInterval().equals(
                        this.getMonitoringInterval()) == false)
            return false;
        if (other.getDBPortNumber() == null ^ this.getDBPortNumber() == null)
            return false;
        if (other.getDBPortNumber() != null
                && other.getDBPortNumber().equals(this.getDBPortNumber()) == false)
            return false;
        if (other.getPubliclyAccessible() == null
                ^ this.getPubliclyAccessible() == null)
            return false;
        if (other.getPubliclyAccessible() != null
                && other.getPubliclyAccessible().equals(
                        this.getPubliclyAccessible()) == false)
            return false;
        if (other.getMonitoringRoleArn() == null
                ^ this.getMonitoringRoleArn() == null)
            return false;
        if (other.getMonitoringRoleArn() != null
                && other.getMonitoringRoleArn().equals(
                        this.getMonitoringRoleArn()) == false)
            return false;
        if (other.getDomainIAMRoleName() == null
                ^ this.getDomainIAMRoleName() == null)
            return false;
        if (other.getDomainIAMRoleName() != null
                && other.getDomainIAMRoleName().equals(
                        this.getDomainIAMRoleName()) == false)
            return false;
        if (other.getPromotionTier() == null ^ this.getPromotionTier() == null)
            return false;
        if (other.getPromotionTier() != null
                && other.getPromotionTier().equals(this.getPromotionTier()) == false)
            return false;
        return true;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        hashCode = prime
                * hashCode
                + ((getDBInstanceIdentifier() == null) ? 0
                        : getDBInstanceIdentifier().hashCode());
        hashCode = prime
                * hashCode
                + ((getAllocatedStorage() == null) ? 0 : getAllocatedStorage()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getDBInstanceClass() == null) ? 0 : getDBInstanceClass()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getDBSecurityGroups() == null) ? 0 : getDBSecurityGroups()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getVpcSecurityGroupIds() == null) ? 0
                        : getVpcSecurityGroupIds().hashCode());
        hashCode = prime
                * hashCode
                + ((getApplyImmediately() == null) ? 0 : getApplyImmediately()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getMasterUserPassword() == null) ? 0
                        : getMasterUserPassword().hashCode());
        hashCode = prime
                * hashCode
                + ((getDBParameterGroupName() == null) ? 0
                        : getDBParameterGroupName().hashCode());
        hashCode = prime
                * hashCode
                + ((getBackupRetentionPeriod() == null) ? 0
                        : getBackupRetentionPeriod().hashCode());
        hashCode = prime
                * hashCode
                + ((getPreferredBackupWindow() == null) ? 0
                        : getPreferredBackupWindow().hashCode());
        hashCode = prime
                * hashCode
                + ((getPreferredMaintenanceWindow() == null) ? 0
                        : getPreferredMaintenanceWindow().hashCode());
        hashCode = prime * hashCode
                + ((getMultiAZ() == null) ? 0 : getMultiAZ().hashCode());
        hashCode = prime
                * hashCode
                + ((getEngineVersion() == null) ? 0 : getEngineVersion()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getAllowMajorVersionUpgrade() == null) ? 0
                        : getAllowMajorVersionUpgrade().hashCode());
        hashCode = prime
                * hashCode
                + ((getAutoMinorVersionUpgrade() == null) ? 0
                        : getAutoMinorVersionUpgrade().hashCode());
        hashCode = prime * hashCode
                + ((getIops() == null) ? 0 : getIops().hashCode());
        hashCode = prime
                * hashCode
                + ((getOptionGroupName() == null) ? 0 : getOptionGroupName()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getNewDBInstanceIdentifier() == null) ? 0
                        : getNewDBInstanceIdentifier().hashCode());
        hashCode = prime
                * hashCode
                + ((getStorageType() == null) ? 0 : getStorageType().hashCode());
        hashCode = prime
                * hashCode
                + ((getTdeCredentialArn() == null) ? 0 : getTdeCredentialArn()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getTdeCredentialPassword() == null) ? 0
                        : getTdeCredentialPassword().hashCode());
        hashCode = prime
                * hashCode
                + ((getCACertificateIdentifier() == null) ? 0
                        : getCACertificateIdentifier().hashCode());
        hashCode = prime * hashCode
                + ((getDomain() == null) ? 0 : getDomain().hashCode());
        hashCode = prime
                * hashCode
                + ((getCopyTagsToSnapshot() == null) ? 0
                        : getCopyTagsToSnapshot().hashCode());
        hashCode = prime
                * hashCode
                + ((getMonitoringInterval() == null) ? 0
                        : getMonitoringInterval().hashCode());
        hashCode = prime
                * hashCode
                + ((getDBPortNumber() == null) ? 0 : getDBPortNumber()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getPubliclyAccessible() == null) ? 0
                        : getPubliclyAccessible().hashCode());
        hashCode = prime
                * hashCode
                + ((getMonitoringRoleArn() == null) ? 0
                        : getMonitoringRoleArn().hashCode());
        hashCode = prime
                * hashCode
                + ((getDomainIAMRoleName() == null) ? 0
                        : getDomainIAMRoleName().hashCode());
        hashCode = prime
                * hashCode
                + ((getPromotionTier() == null) ? 0 : getPromotionTier()
                        .hashCode());
        return hashCode;
    }
    @Override
    public ModifyDBInstanceRequest clone() {
        return (ModifyDBInstanceRequest) super.clone();
    }
}