def modify(options = {})
      options = options.merge(db_instance_identifier: @id)
      resp = @client.modify_db_instance(options)
      DBInstance.new(
        id: resp.data.db_instance.db_instance_identifier,
        data: resp.data.db_instance,
        client: @client
      )
    end
def modify(options = {})
      options = options.merge(db_instance_identifier: @id)
      resp = @client.modify_db_instance(options)
      DBInstance.new(
        id: resp.data.db_instance.db_instance_identifier,
        data: resp.data.db_instance,
        client: @client
      )
    end
@example Request syntax with placeholder values

   dbinstance = db_instance.modify({
     allocated_storage: 1,
     db_instance_class: "String",
     db_subnet_group_name: "String",
     db_security_groups: ["String"],
     vpc_security_group_ids: ["String"],
     apply_immediately: false,
     master_user_password: "String",
     db_parameter_group_name: "String",
     backup_retention_period: 1,
     preferred_backup_window: "String",
     preferred_maintenance_window: "String",
     multi_az: false,
     engine_version: "String",
     allow_major_version_upgrade: false,
     auto_minor_version_upgrade: false,
     license_model: "String",
     iops: 1,
     option_group_name: "String",
     new_db_instance_identifier: "String",
     storage_type: "String",
     tde_credential_arn: "String",
     tde_credential_password: "String",
     ca_certificate_identifier: "String",
     domain: "String",
     copy_tags_to_snapshot: false,
     monitoring_interval: 1,
     db_port_number: 1,
     publicly_accessible: false,
     monitoring_role_arn: "String",
     domain_iam_role_name: "String",
     promotion_tier: 1,
     enable_iam_database_authentication: false,
     enable_performance_insights: false,
     performance_insights_kms_key_id: "String",
     performance_insights_retention_period: 1,
     cloudwatch_logs_export_configuration: {
       enable_log_types: ["String"],
       disable_log_types: ["String"],
     },
     processor_features: [
       {
         name: "String",
         value: "String",
       },
     ],
     use_default_processor_features: false,
     deletion_protection: false,
   })
 @param [Hash] options ({})
 @option options [Integer] :allocated_storage
   The new amount of storage (in gibibytes) to allocate for the DB
   instance.

   For MariaDB, MySQL, Oracle, and PostgreSQL, the 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.

   For the valid values for allocated storage for each engine, see
   CreateDBInstance.
 @option options [String] :db_instance_class
   The new compute and memory capacity of the DB instance, for example,
   `db.m4.large`. Not all DB instance classes are available in all AWS
   Regions, or for all database engines. For the full list of DB instance
   classes, and availability for your engine, see [DB Instance Class][1]
   in the *Amazon RDS User Guide.*

   If you modify the DB instance class, an outage occurs during the
   change. The change is applied during the next maintenance window,
   unless `ApplyImmediately` is specified as `true` for this request.

   Default: Uses existing setting



   [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html
 @option options [String] :db_subnet_group_name
   The new DB subnet group for the DB instance. You can use this
   parameter to move your DB instance to a different VPC. If your DB
   instance is not in a VPC, you can also use this parameter to move your
   DB instance into a VPC. For more information, see [Updating the VPC
   for a DB Instance][1] in the *Amazon RDS User Guide.*

   Changing the subnet group causes an outage during the change. The
   change is applied during the next maintenance window, unless you
   specify `true` for the `ApplyImmediately` parameter.

   Constraints: If supplied, must match the name of an existing
   DBSubnetGroup.

   Example: `mySubnetGroup`



   [1]: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Non-VPC2VPC
 @option options [Array<String>] :db_security_groups
   A list of DB security groups to authorize on this DB instance.
   Changing this setting doesn't result in an outage and the change is
   asynchronously applied as soon as possible.

   Constraints:

   * If supplied, must match existing DBSecurityGroups.

   ^
 @option options [Array<String>] :vpc_security_group_ids
   A list of EC2 VPC security groups to authorize on this DB instance.
   This change is asynchronously applied as soon as possible.

   **Amazon Aurora**

   Not applicable. The associated list of EC2 VPC security groups is
   managed by the DB cluster. For more information, see ModifyDBCluster.

   Constraints:

   * If supplied, must match existing VpcSecurityGroupIds.

   ^
 @option options [Boolean] :apply_immediately
   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 are 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][1]
   in the *Amazon RDS User Guide.* to see the impact that setting
   `ApplyImmediately` to `true` or `false` has for each modified
   parameter and to determine when the changes are applied.

   Default: `false`



   [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html
 @option options [String] :master_user_password
   The new password for the master user. The password can include any
   printable ASCII character except "/", """, or "@".

   Changing this parameter doesn't 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.

   **Amazon Aurora**

   Not applicable. The password for the master user is managed by the DB
   cluster. For more information, see ModifyDBCluster.

   Default: Uses existing setting

   **MariaDB**

   Constraints: Must contain from 8 to 41 characters.

   **Microsoft SQL Server**

   Constraints: Must contain from 8 to 128 characters.

   **MySQL**

   Constraints: Must contain from 8 to 41 characters.

   **Oracle**

   Constraints: Must contain from 8 to 30 characters.

   **PostgreSQL**

   Constraints: Must contain from 8 to 128 characters.

   <note markdown="1"> 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.

    </note>
 @option options [String] :db_parameter_group_name
   The name of the DB parameter group to apply to the DB instance.
   Changing this setting doesn't 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.
 @option options [Integer] :backup_retention_period
   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.

   **Amazon Aurora**

   Not applicable. The retention period for automated backups is managed
   by the DB cluster. For more information, see ModifyDBCluster.

   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 or later

   * Can be specified for a PostgreSQL Read Replica only if the source is
     running PostgreSQL 9.3.5

   * Can't be set to 0 if the DB instance is a source to Read Replicas
 @option options [String] :preferred_backup_window
   The daily time range during which automated backups are created if
   automated backups are enabled, as determined by the
   `BackupRetentionPeriod` parameter. Changing this parameter doesn't
   result in an outage and the change is asynchronously applied as soon
   as possible.

   **Amazon Aurora**

   Not applicable. The daily time range for creating automated backups is
   managed by the DB cluster. For more information, see ModifyDBCluster.

   Constraints:

   * Must be in the format hh24:mi-hh24:mi

   * Must be in Universal Time Coordinated (UTC)

   * Must not conflict with the preferred maintenance window

   * Must be at least 30 minutes
 @option options [String] :preferred_maintenance_window
   The weekly time range (in UTC) during which system maintenance can
   occur, which might result in an outage. Changing this parameter
   doesn't 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
 @option options [Boolean] :multi_az
   Specifies if the DB instance is a Multi-AZ deployment. Changing this
   parameter doesn't 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.
 @option options [String] :engine_version
   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 nondefault 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 information about valid engine versions, see CreateDBInstance, or
   call DescribeDBEngineVersions.
 @option options [Boolean] :allow_major_version_upgrade
   Indicates that major version upgrades are allowed. Changing this
   parameter doesn't 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.
 @option options [Boolean] :auto_minor_version_upgrade
   Indicates that minor version upgrades are applied automatically to the
   DB instance during the maintenance window. Changing this parameter
   doesn't 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.
 @option options [String] :license_model
   The license model for the DB instance.

   Valid values: `license-included` \| `bring-your-own-license` \|
   `general-public-license`
 @option options [Integer] :iops
   The new Provisioned IOPS (I/O operations per second) value for the RDS
   instance.

   Changing this setting doesn't 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. 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.

   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 is available for use, but might experience
   performance degradation. While the migration takes place, nightly
   backups for the instance are 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.

   Constraints: For MariaDB, MySQL, Oracle, and PostgreSQL, the 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.

   Default: Uses existing setting
 @option options [String] :option_group_name
   Indicates that the DB instance should be associated with the specified
   option group. Changing this parameter doesn't 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, can't be removed from an option group, and that option group
   can't be removed from a DB instance once it is associated with a DB
   instance
 @option options [String] :new_db_instance_identifier
   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 letters, numbers, or hyphens.

   * The first character must be a letter.

   * Can't end with a hyphen or contain two consecutive hyphens.

   Example: `mydbinstance`
 @option options [String] :storage_type
   Specifies the storage type to be associated with the DB instance.

   If you specify Provisioned IOPS (`io1`), you must also include a value
   for the `Iops` parameter.

   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 is available for use, but might experience
   performance degradation. While the migration takes place, nightly
   backups for the instance are 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.

   Valid values: `standard | gp2 | io1`

   Default: `io1` if the `Iops` parameter is specified, otherwise
   `standard`
 @option options [String] :tde_credential_arn
   The ARN from the key store with which to associate the instance for
   TDE encryption.
 @option options [String] :tde_credential_password
   The password for the given ARN from the key store in order to access
   the device.
 @option options [String] :ca_certificate_identifier
   Indicates the certificate that needs to be associated with the
   instance.
 @option options [String] :domain
   The Active Directory Domain to move the instance to. Specify `none` to
   remove the instance from its current domain. The domain must be
   created prior to this operation. Currently only a Microsoft SQL Server
   instance can be created in a Active Directory Domain.
 @option options [Boolean] :copy_tags_to_snapshot
   True to copy all tags from the DB instance to snapshots of the DB
   instance, and otherwise false. The default is false.

   **Amazon Aurora**

   Not applicable. Copying tags to snapshots is managed by the DB
   cluster. Setting this value for an Aurora DB instance has no effect on
   the DB cluster setting. For more information, see ModifyDBCluster.
 @option options [Integer] :monitoring_interval
   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`
 @option options [Integer] :db_port_number
   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`
 @option options [Boolean] :publicly_accessible
   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
 @option options [String] :monitoring_role_arn
   The ARN for the IAM role that permits RDS to send enhanced monitoring
   metrics to Amazon 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][1] in the *Amazon RDS User Guide.*

   If `MonitoringInterval` is set to a value other than 0, then you must
   supply a `MonitoringRoleArn` value.



   [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html#USER_Monitoring.OS.IAMRole
 @option options [String] :domain_iam_role_name
   The name of the IAM role to use when making API calls to the Directory
   Service.
 @option options [Integer] :promotion_tier
   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][1] in the *Amazon Aurora User Guide*.

   Default: 1

   Valid Values: 0 - 15



   [1]: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.FaultTolerance
 @option options [Boolean] :enable_iam_database_authentication
   True to enable mapping of AWS Identity and Access Management (IAM)
   accounts to database accounts, and otherwise false.

   You can enable IAM database authentication for the following database
   engines

   **Amazon Aurora**

   Not applicable. Mapping AWS IAM accounts to database accounts is
   managed by the DB cluster. For more information, see ModifyDBCluster.

   **MySQL**

   * For MySQL 5.6, minor version 5.6.34 or higher

   * For MySQL 5.7, minor version 5.7.16 or higher

   Default: `false`
 @option options [Boolean] :enable_performance_insights
   True to enable Performance Insights for the DB instance, and otherwise
   false.

   For more information, see [Using Amazon Performance Insights][1] in
   the *Amazon Relational Database Service User Guide*.



   [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html
 @option options [String] :performance_insights_kms_key_id
   The AWS KMS key identifier for encryption of Performance Insights
   data. The KMS key ID is the Amazon Resource Name (ARN), KMS key
   identifier, or the KMS key alias for the KMS encryption key.
 @option options [Integer] :performance_insights_retention_period
   The amount of time, in days, to retain Performance Insights data.
   Valid values are 7 or 731 (2 years).
 @option options [Types::CloudwatchLogsExportConfiguration] :cloudwatch_logs_export_configuration
   The configuration setting for the log types to be enabled for export
   to CloudWatch Logs for a specific DB instance.

   A change to the `CloudwatchLogsExportConfiguration` parameter is
   always applied to the DB instance immediately. Therefore, the
   `ApplyImmediately` parameter has no effect.
 @option options [Array<Types::ProcessorFeature>] :processor_features
   The number of CPU cores and the number of threads per core for the DB
   instance class of the DB instance.
 @option options [Boolean] :use_default_processor_features
   A value that specifies that the DB instance class of the DB instance
   uses its default processor features.
 @option options [Boolean] :deletion_protection
   Indicates if the DB instance has deletion protection enabled. The
   database can't be deleted when this value is set to true. For more
   information, see [ Deleting a DB Instance][1].



   [1]: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html
 @return [DBInstance]