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 (e.g., 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 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 availabilityZone
:
The Availability Zone where you want to create the disk (e.g.,
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 (e.g., my-disk
).
Parameter sizeInGb
:
The size of the disk in GB (e.g., 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 (e.g., my-snapshot
) from which
to create the new storage disk.
Constraint:
-
This parameter cannot be defined together with the
source disk name
parameter. Thedisk snapshot name
andsource disk name
parameters 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-DD
format. -
This parameter cannot be defined together with the
use latest restorable auto snapshot
parameter. Therestore date
anduse latest restorable auto snapshot
parameters are mutually exclusive. - Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the Lightsail Dev 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 name
parameter. Thesource disk name
anddisk snapshot name
parameters are mutually exclusive. - Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the Lightsail Dev 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 date
parameter. Theuse latest restorable auto snapshot
andrestore date
parameters are mutually exclusive. - Define this parameter only when creating a new disk from an automatic snapshot. For more information, see the Lightsail Dev 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 {
ArgumentError.checkNotNull(availabilityZone, 'availabilityZone');
ArgumentError.checkNotNull(diskName, 'diskName');
ArgumentError.checkNotNull(sizeInGb, 'sizeInGb');
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);
}