updateRelationalDatabase method

Future<UpdateRelationalDatabaseResult> updateRelationalDatabase({
  1. required String relationalDatabaseName,
  2. bool? applyImmediately,
  3. String? caCertificateIdentifier,
  4. bool? disableBackupRetention,
  5. bool? enableBackupRetention,
  6. String? masterUserPassword,
  7. String? preferredBackupWindow,
  8. String? preferredMaintenanceWindow,
  9. bool? publiclyAccessible,
  10. bool? rotateMasterUserPassword,
})

Allows the update of one or more attributes of a database in Amazon Lightsail.

Updates are applied immediately, or in cases where the updates could result in an outage, are applied during the database's predefined maintenance window.

The update relational database operation supports tag-based access control via resource tags applied to the resource identified by relationalDatabaseName. For more information, see the Lightsail Dev Guide.

May throw ServiceException. May throw InvalidInputException. May throw NotFoundException. May throw OperationFailureException. May throw AccessDeniedException. May throw AccountSetupInProgressException. May throw UnauthenticatedException.

Parameter relationalDatabaseName : The name of your database to update.

Parameter applyImmediately : When true, applies changes immediately. When false, applies changes during the preferred maintenance window. Some changes may cause an outage.

Default: false

Parameter caCertificateIdentifier : Indicates the certificate that needs to be associated with the database.

Parameter disableBackupRetention : When true, disables automated backup retention for your database.

Disabling backup retention deletes all automated database backups. Before disabling this, you may want to create a snapshot of your database using the create relational database snapshot operation.

Updates are applied during the next maintenance window because this can result in an outage.

Parameter enableBackupRetention : When true, enables automated backup retention for your database.

Updates are applied during the next maintenance window because this can result in an outage.

Parameter masterUserPassword : The password for the master user of your database. The password can include any printable ASCII character except "/", """, or "@".

Constraints: Must contain 8 to 41 characters.

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

Constraints:

  • Must be in the hh24:mi-hh24:mi format.

    Example: 16:00-16:30

  • Specified in Coordinated Universal Time (UTC).
  • Must not conflict with the preferred maintenance window.
  • Must be at least 30 minutes.

Parameter preferredMaintenanceWindow : The weekly time range during which system maintenance can occur on your database.

The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.

Constraints:

  • Must be in the ddd:hh24:mi-ddd:hh24:mi format.
  • Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
  • Must be at least 30 minutes.
  • Specified in Coordinated Universal Time (UTC).
  • Example: Tue:17:00-Tue:17:30

Parameter publiclyAccessible : Specifies the accessibility options for your database. A value of true specifies a database that is available to resources outside of your Lightsail account. A value of false specifies a database that is available only to your Lightsail resources in the same region as your database.

Parameter rotateMasterUserPassword : When true, the master user password is changed to a new strong password generated by Lightsail.

Use the get relational database master user password operation to get the new password.

Implementation

Future<UpdateRelationalDatabaseResult> updateRelationalDatabase({
  required String relationalDatabaseName,
  bool? applyImmediately,
  String? caCertificateIdentifier,
  bool? disableBackupRetention,
  bool? enableBackupRetention,
  String? masterUserPassword,
  String? preferredBackupWindow,
  String? preferredMaintenanceWindow,
  bool? publiclyAccessible,
  bool? rotateMasterUserPassword,
}) async {
  ArgumentError.checkNotNull(
      relationalDatabaseName, 'relationalDatabaseName');
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'Lightsail_20161128.UpdateRelationalDatabase'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'relationalDatabaseName': relationalDatabaseName,
      if (applyImmediately != null) 'applyImmediately': applyImmediately,
      if (caCertificateIdentifier != null)
        'caCertificateIdentifier': caCertificateIdentifier,
      if (disableBackupRetention != null)
        'disableBackupRetention': disableBackupRetention,
      if (enableBackupRetention != null)
        'enableBackupRetention': enableBackupRetention,
      if (masterUserPassword != null)
        'masterUserPassword': masterUserPassword,
      if (preferredBackupWindow != null)
        'preferredBackupWindow': preferredBackupWindow,
      if (preferredMaintenanceWindow != null)
        'preferredMaintenanceWindow': preferredMaintenanceWindow,
      if (publiclyAccessible != null)
        'publiclyAccessible': publiclyAccessible,
      if (rotateMasterUserPassword != null)
        'rotateMasterUserPassword': rotateMasterUserPassword,
    },
  );

  return UpdateRelationalDatabaseResult.fromJson(jsonResponse.body);
}