createBackup method

Future<CreateBackupResponse> createBackup({
  1. String? clientRequestToken,
  2. String? fileSystemId,
  3. List<Tag>? tags,
  4. String? volumeId,
})

Creates a backup of an existing Amazon FSx for Windows File Server file system, Amazon FSx for Lustre file system, Amazon FSx for NetApp ONTAP volume, or Amazon FSx for OpenZFS file system. We recommend creating regular backups so that you can restore a file system or volume from a backup if an issue arises with the original file system or volume.

For Amazon FSx for Lustre file systems, you can create a backup only for file systems that have the following configuration:

  • A Persistent deployment type
  • Are not linked to a data repository
For more information about backups, see the following: If a backup with the specified client request token exists and the parameters match, this operation returns the description of the existing backup. If a backup with the specified client request token exists and the parameters don't match, this operation returns IncompatibleParameterError. If a backup with the specified client request token doesn't exist, CreateBackup does the following:
  • Creates a new Amazon FSx backup with an assigned ID, and an initial lifecycle state of CREATING.
  • Returns the description of the backup.
By using the idempotent operation, you can retry a CreateBackup operation without the risk of creating an extra backup. This approach can be useful when an initial call fails in a way that makes it unclear whether a backup was created. If you use the same client request token and the initial call created a backup, the operation returns a successful result because all the parameters are the same.

The CreateBackup operation returns while the backup's lifecycle state is still CREATING. You can check the backup creation status by calling the DescribeBackups operation, which returns the backup state along with other information.

May throw BackupInProgress. May throw BadRequest. May throw FileSystemNotFound. May throw IncompatibleParameterError. May throw InternalServerError. May throw ServiceLimitExceeded. May throw UnsupportedOperation. May throw VolumeNotFound.

Parameter clientRequestToken : (Optional) A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.

Parameter fileSystemId : The ID of the file system to back up.

Parameter tags : (Optional) The tags to apply to the backup at backup creation. The key value of the Name tag appears in the console as the backup name. If you have set CopyTagsToBackups to true, and you specify one or more tags using the CreateBackup operation, no existing file system tags are copied from the file system to the backup.

Parameter volumeId : (Optional) The ID of the FSx for ONTAP volume to back up.

Implementation

Future<CreateBackupResponse> createBackup({
  String? clientRequestToken,
  String? fileSystemId,
  List<Tag>? tags,
  String? volumeId,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWSSimbaAPIService_v20180301.CreateBackup'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ClientRequestToken':
          clientRequestToken ?? _s.generateIdempotencyToken(),
      if (fileSystemId != null) 'FileSystemId': fileSystemId,
      if (tags != null) 'Tags': tags,
      if (volumeId != null) 'VolumeId': volumeId,
    },
  );

  return CreateBackupResponse.fromJson(jsonResponse.body);
}