modifyDBInstance method

Future<ModifyDBInstanceResult> modifyDBInstance({
  1. required String dBInstanceIdentifier,
  2. int? allocatedStorage,
  3. bool? allowMajorVersionUpgrade,
  4. bool? applyImmediately,
  5. bool? autoMinorVersionUpgrade,
  6. int? backupRetentionPeriod,
  7. String? cACertificateIdentifier,
  8. CloudwatchLogsExportConfiguration? cloudwatchLogsExportConfiguration,
  9. bool? copyTagsToSnapshot,
  10. String? dBInstanceClass,
  11. String? dBParameterGroupName,
  12. int? dBPortNumber,
  13. List<String>? dBSecurityGroups,
  14. String? dBSubnetGroupName,
  15. bool? deletionProtection,
  16. String? domain,
  17. String? domainIAMRoleName,
  18. bool? enableIAMDatabaseAuthentication,
  19. bool? enablePerformanceInsights,
  20. String? engineVersion,
  21. int? iops,
  22. String? licenseModel,
  23. String? masterUserPassword,
  24. int? monitoringInterval,
  25. String? monitoringRoleArn,
  26. bool? multiAZ,
  27. String? newDBInstanceIdentifier,
  28. String? optionGroupName,
  29. String? performanceInsightsKMSKeyId,
  30. String? preferredBackupWindow,
  31. String? preferredMaintenanceWindow,
  32. int? promotionTier,
  33. bool? publiclyAccessible,
  34. String? storageType,
  35. String? tdeCredentialArn,
  36. String? tdeCredentialPassword,
  37. List<String>? vpcSecurityGroupIds,
})

Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. To learn what modifications you can make to your DB instance, call DescribeValidDBInstanceModifications before you call ModifyDBInstance.

May throw InvalidDBInstanceStateFault. May throw InvalidDBSecurityGroupStateFault. May throw DBInstanceAlreadyExistsFault. May throw DBInstanceNotFoundFault. May throw DBSecurityGroupNotFoundFault. May throw DBParameterGroupNotFoundFault. May throw InsufficientDBInstanceCapacityFault. May throw StorageQuotaExceededFault. May throw InvalidVPCNetworkStateFault. May throw ProvisionedIopsNotAvailableInAZFault. May throw OptionGroupNotFoundFault. May throw DBUpgradeDependencyFailureFault. May throw StorageTypeNotSupportedFault. May throw AuthorizationNotFoundFault. May throw CertificateNotFoundFault. May throw DomainNotFoundFault.

Parameter dBInstanceIdentifier : The DB instance identifier. This value is stored as a lowercase string.

Constraints:

  • Must match the identifier of an existing DBInstance.

Parameter allocatedStorage : The new amount of storage (in gibibytes) to allocate for the DB instance.

Not applicable. Storage is managed by the DB Cluster.

Parameter allowMajorVersionUpgrade : 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.

Parameter 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 are applied on the next call to RebootDBInstance, or the next failure reboot.

Default: false

Parameter autoMinorVersionUpgrade : 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 Neptune has enabled auto patching for that engine version.

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

Default: Uses existing setting

Parameter cACertificateIdentifier : Indicates the certificate that needs to be associated with the instance.

Parameter cloudwatchLogsExportConfiguration : The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster.

Parameter copyTagsToSnapshot : True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. The default is false.

Parameter dBInstanceClass : 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.

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

Parameter dBParameterGroupName : 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.

Parameter 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.

Default: 8182

Parameter dBSecurityGroups : 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.

Parameter dBSubnetGroupName : The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC.

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

Parameter deletionProtection : A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. See Deleting a DB Instance.

Parameter domain : Not supported.

Parameter domainIAMRoleName : Not supported

Parameter enableIAMDatabaseAuthentication : 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

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

Default: false

Parameter enablePerformanceInsights : (Not supported by Neptune)

Parameter engineVersion : The version number of the database engine to upgrade to. Currently, setting this parameter has no effect. To upgrade your database engine to the most recent release, use the ApplyPendingMaintenanceAction API.

Parameter iops : The new Provisioned IOPS (I/O operations per second) value for the 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.

Default: Uses existing setting

Parameter licenseModel : Not supported.

Parameter masterUserPassword : Not applicable.

Parameter 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

Parameter monitoringRoleArn : The ARN for the IAM role that permits Neptune to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess.

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

Parameter multiAZ : 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.

Parameter 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 letters, numbers, or hyphens.
  • The first character must be a letter.
  • Cannot end with a hyphen or contain two consecutive hyphens.
Example: mydbinstance

Parameter optionGroupName : (Not supported by Neptune)

Parameter performanceInsightsKMSKeyId : (Not supported by Neptune)

Parameter preferredBackupWindow : The daily time range during which automated backups are created if automated backups are enabled.

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

Parameter preferredMaintenanceWindow : 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

Parameter promotionTier : A value that specifies the order in which a Read Replica is promoted to the primary instance after a failure of the existing primary instance.

Default: 1

Valid Values: 0 - 15

Parameter publiclyAccessible : This flag should no longer be used.

Parameter storageType : Not supported.

Parameter tdeCredentialArn : The ARN from the key store with which to associate the instance for TDE encryption.

Parameter tdeCredentialPassword : The password for the given ARN from the key store in order to access the device.

Parameter vpcSecurityGroupIds : A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible.

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.

Implementation

Future<ModifyDBInstanceResult> modifyDBInstance({
  required String dBInstanceIdentifier,
  int? allocatedStorage,
  bool? allowMajorVersionUpgrade,
  bool? applyImmediately,
  bool? autoMinorVersionUpgrade,
  int? backupRetentionPeriod,
  String? cACertificateIdentifier,
  CloudwatchLogsExportConfiguration? cloudwatchLogsExportConfiguration,
  bool? copyTagsToSnapshot,
  String? dBInstanceClass,
  String? dBParameterGroupName,
  int? dBPortNumber,
  List<String>? dBSecurityGroups,
  String? dBSubnetGroupName,
  bool? deletionProtection,
  String? domain,
  String? domainIAMRoleName,
  bool? enableIAMDatabaseAuthentication,
  bool? enablePerformanceInsights,
  String? engineVersion,
  int? iops,
  String? licenseModel,
  String? masterUserPassword,
  int? monitoringInterval,
  String? monitoringRoleArn,
  bool? multiAZ,
  String? newDBInstanceIdentifier,
  String? optionGroupName,
  String? performanceInsightsKMSKeyId,
  String? preferredBackupWindow,
  String? preferredMaintenanceWindow,
  int? promotionTier,
  bool? publiclyAccessible,
  String? storageType,
  String? tdeCredentialArn,
  String? tdeCredentialPassword,
  List<String>? vpcSecurityGroupIds,
}) async {
  ArgumentError.checkNotNull(dBInstanceIdentifier, 'dBInstanceIdentifier');
  final $request = <String, dynamic>{};
  $request['DBInstanceIdentifier'] = dBInstanceIdentifier;
  allocatedStorage?.also((arg) => $request['AllocatedStorage'] = arg);
  allowMajorVersionUpgrade
      ?.also((arg) => $request['AllowMajorVersionUpgrade'] = arg);
  applyImmediately?.also((arg) => $request['ApplyImmediately'] = arg);
  autoMinorVersionUpgrade
      ?.also((arg) => $request['AutoMinorVersionUpgrade'] = arg);
  backupRetentionPeriod
      ?.also((arg) => $request['BackupRetentionPeriod'] = arg);
  cACertificateIdentifier
      ?.also((arg) => $request['CACertificateIdentifier'] = arg);
  cloudwatchLogsExportConfiguration
      ?.also((arg) => $request['CloudwatchLogsExportConfiguration'] = arg);
  copyTagsToSnapshot?.also((arg) => $request['CopyTagsToSnapshot'] = arg);
  dBInstanceClass?.also((arg) => $request['DBInstanceClass'] = arg);
  dBParameterGroupName?.also((arg) => $request['DBParameterGroupName'] = arg);
  dBPortNumber?.also((arg) => $request['DBPortNumber'] = arg);
  dBSecurityGroups?.also((arg) => $request['DBSecurityGroups'] = arg);
  dBSubnetGroupName?.also((arg) => $request['DBSubnetGroupName'] = arg);
  deletionProtection?.also((arg) => $request['DeletionProtection'] = arg);
  domain?.also((arg) => $request['Domain'] = arg);
  domainIAMRoleName?.also((arg) => $request['DomainIAMRoleName'] = arg);
  enableIAMDatabaseAuthentication
      ?.also((arg) => $request['EnableIAMDatabaseAuthentication'] = arg);
  enablePerformanceInsights
      ?.also((arg) => $request['EnablePerformanceInsights'] = arg);
  engineVersion?.also((arg) => $request['EngineVersion'] = arg);
  iops?.also((arg) => $request['Iops'] = arg);
  licenseModel?.also((arg) => $request['LicenseModel'] = arg);
  masterUserPassword?.also((arg) => $request['MasterUserPassword'] = arg);
  monitoringInterval?.also((arg) => $request['MonitoringInterval'] = arg);
  monitoringRoleArn?.also((arg) => $request['MonitoringRoleArn'] = arg);
  multiAZ?.also((arg) => $request['MultiAZ'] = arg);
  newDBInstanceIdentifier
      ?.also((arg) => $request['NewDBInstanceIdentifier'] = arg);
  optionGroupName?.also((arg) => $request['OptionGroupName'] = arg);
  performanceInsightsKMSKeyId
      ?.also((arg) => $request['PerformanceInsightsKMSKeyId'] = arg);
  preferredBackupWindow
      ?.also((arg) => $request['PreferredBackupWindow'] = arg);
  preferredMaintenanceWindow
      ?.also((arg) => $request['PreferredMaintenanceWindow'] = arg);
  promotionTier?.also((arg) => $request['PromotionTier'] = arg);
  publiclyAccessible?.also((arg) => $request['PubliclyAccessible'] = arg);
  storageType?.also((arg) => $request['StorageType'] = arg);
  tdeCredentialArn?.also((arg) => $request['TdeCredentialArn'] = arg);
  tdeCredentialPassword
      ?.also((arg) => $request['TdeCredentialPassword'] = arg);
  vpcSecurityGroupIds?.also((arg) => $request['VpcSecurityGroupIds'] = arg);
  final $result = await _protocol.send(
    $request,
    action: 'ModifyDBInstance',
    version: '2014-10-31',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    shape: shapes['ModifyDBInstanceMessage'],
    shapes: shapes,
    resultWrapper: 'ModifyDBInstanceResult',
  );
  return ModifyDBInstanceResult.fromXml($result);
}