startRestoreJob method

Future<StartRestoreJobOutput> startRestoreJob({
  1. required String iamRoleArn,
  2. required Map<String, String> metadata,
  3. required String recoveryPointArn,
  4. String? idempotencyToken,
  5. String? resourceType,
})

Recovers the saved resource identified by an Amazon Resource Name (ARN).

May throw ResourceNotFoundException. May throw InvalidParameterValueException. May throw MissingParameterValueException. May throw ServiceUnavailableException.

Parameter iamRoleArn : The Amazon Resource Name (ARN) of the IAM role that AWS Backup uses to create the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access.

Parameter metadata : A set of metadata key-value pairs. Contains information, such as a resource name, required to restore a recovery point.

You can get configuration metadata about a resource at the time it was backed up by calling GetRecoveryPointRestoreMetadata. However, values in addition to those provided by GetRecoveryPointRestoreMetadata might be required to restore a resource. For example, you might need to provide a new resource name if the original already exists.

You need to specify specific metadata to restore an Amazon Elastic File System (Amazon EFS) instance:

  • file-system-id: The ID of the Amazon EFS file system that is backed up by AWS Backup. Returned in GetRecoveryPointRestoreMetadata.
  • Encrypted: A Boolean value that, if true, specifies that the file system is encrypted. If KmsKeyId is specified, Encrypted must be set to true.
  • KmsKeyId: Specifies the AWS KMS key that is used to encrypt the restored file system. You can specify a key from another AWS account provided that key it is properly shared with your account via AWS KMS.
  • PerformanceMode: Specifies the throughput mode of the file system.
  • CreationToken: A user-supplied value that ensures the uniqueness (idempotency) of the request.
  • newFileSystem: A Boolean value that, if true, specifies that the recovery point is restored to a new Amazon EFS file system.
  • ItemsToRestore : A serialized list of up to five strings where each string is a file path. Use ItemsToRestore to restore specific files or directories rather than the entire file system. This parameter is optional.

Parameter recoveryPointArn : An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.

Parameter idempotencyToken : A customer chosen string that can be used to distinguish between calls to StartRestoreJob.

Parameter resourceType : Starts a job to restore a recovery point for one of the following resources:

  • DynamoDB for Amazon DynamoDB
  • EBS for Amazon Elastic Block Store
  • EC2 for Amazon Elastic Compute Cloud
  • EFS for Amazon Elastic File System
  • RDS for Amazon Relational Database Service
  • Storage Gateway for AWS Storage Gateway

Implementation

Future<StartRestoreJobOutput> startRestoreJob({
  required String iamRoleArn,
  required Map<String, String> metadata,
  required String recoveryPointArn,
  String? idempotencyToken,
  String? resourceType,
}) async {
  ArgumentError.checkNotNull(iamRoleArn, 'iamRoleArn');
  ArgumentError.checkNotNull(metadata, 'metadata');
  ArgumentError.checkNotNull(recoveryPointArn, 'recoveryPointArn');
  final $payload = <String, dynamic>{
    'IamRoleArn': iamRoleArn,
    'Metadata': metadata,
    'RecoveryPointArn': recoveryPointArn,
    if (idempotencyToken != null) 'IdempotencyToken': idempotencyToken,
    if (resourceType != null) 'ResourceType': resourceType,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'PUT',
    requestUri: '/restore-jobs',
    exceptionFnMap: _exceptionFns,
  );
  return StartRestoreJobOutput.fromJson(response);
}