createDiskFromSnapshot method
Creates a block storage disk from a manual or automatic snapshot of a
disk. The resulting disk can be attached to an Amazon Lightsail instance
in the same Availability Zone (us-east-2a).
The create disk from snapshot operation supports tag-based
access control via request tags and resource tags applied to the resource
identified by disk snapshot name. For more information, see
the Amazon
Lightsail Developer Guide.
May throw AccessDeniedException.
May throw AccountSetupInProgressException.
May throw InvalidInputException.
May throw NotFoundException.
May throw OperationFailureException.
May throw RegionSetupInProgressException.
May throw ServiceException.
May throw UnauthenticatedException.
Parameter availabilityZone :
The Availability Zone where you want to create the disk
(us-east-2a). Choose the same Availability Zone as the
Lightsail instance where you want to create the disk.
Use the GetRegions operation to list the Availability Zones where Lightsail is currently available.
Parameter diskName :
The unique Lightsail disk name (my-disk).
Parameter sizeInGb :
The size of the disk in GB (32).
Parameter addOns :
An array of objects that represent the add-ons to enable for the new disk.
Parameter diskSnapshotName :
The name of the disk snapshot (my-snapshot) from which to
create the new storage disk.
Constraint:
-
This parameter cannot be defined together with the
source disk nameparameter. Thedisk snapshot nameandsource disk nameparameters are mutually exclusive.
Parameter restoreDate :
The date of the automatic snapshot to use for the new disk. Use the
get auto snapshots operation to identify the dates of the
available automatic snapshots.
Constraints:
-
Must be specified in
YYYY-MM-DDformat. -
This parameter cannot be defined together with the
use latest restorable auto snapshotparameter. Therestore dateanduse latest restorable auto snapshotparameters are mutually exclusive. - Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the Amazon Lightsail Developer Guide.
Parameter sourceDiskName :
The name of the source disk from which the source automatic snapshot was
created.
Constraints:
-
This parameter cannot be defined together with the
disk snapshot nameparameter. Thesource disk nameanddisk snapshot nameparameters are mutually exclusive. - Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the Amazon Lightsail Developer Guide.
Parameter tags :
The tag keys and optional values to add to the resource during create.
Use the TagResource action to tag a resource after it's
created.
Parameter useLatestRestorableAutoSnapshot :
A Boolean value to indicate whether to use the latest available automatic
snapshot.
Constraints:
-
This parameter cannot be defined together with the
restore dateparameter. Theuse latest restorable auto snapshotandrestore dateparameters are mutually exclusive. - Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the Amazon Lightsail Developer Guide.
Implementation
Future<CreateDiskFromSnapshotResult> createDiskFromSnapshot({
required String availabilityZone,
required String diskName,
required int sizeInGb,
List<AddOnRequest>? addOns,
String? diskSnapshotName,
String? restoreDate,
String? sourceDiskName,
List<Tag>? tags,
bool? useLatestRestorableAutoSnapshot,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'Lightsail_20161128.CreateDiskFromSnapshot'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'availabilityZone': availabilityZone,
'diskName': diskName,
'sizeInGb': sizeInGb,
if (addOns != null) 'addOns': addOns,
if (diskSnapshotName != null) 'diskSnapshotName': diskSnapshotName,
if (restoreDate != null) 'restoreDate': restoreDate,
if (sourceDiskName != null) 'sourceDiskName': sourceDiskName,
if (tags != null) 'tags': tags,
if (useLatestRestorableAutoSnapshot != null)
'useLatestRestorableAutoSnapshot': useLatestRestorableAutoSnapshot,
},
);
return CreateDiskFromSnapshotResult.fromJson(jsonResponse.body);
}