detachVolume method
Disconnects a volume from an iSCSI connection and then detaches the volume from the specified gateway. Detaching and attaching a volume enables you to recover your data from one gateway to a different gateway without creating a snapshot. It also makes it easier to move your volumes from an on-premises gateway to a gateway hosted on an Amazon EC2 instance. This operation is only supported in the volume gateway type.
May throw InvalidGatewayRequestException. May throw InternalServerError.
Parameter volumeARN
:
The Amazon Resource Name (ARN) of the volume to detach from the gateway.
Parameter forceDetach
:
Set to true
to forcibly remove the iSCSI connection of the
target volume and detach the volume. The default is false
. If
this value is set to false
, you must manually disconnect the
iSCSI connection from the target volume.
Valid Values: true
| false
Implementation
Future<DetachVolumeOutput> detachVolume({
required String volumeARN,
bool? forceDetach,
}) async {
ArgumentError.checkNotNull(volumeARN, 'volumeARN');
_s.validateStringLength(
'volumeARN',
volumeARN,
50,
500,
isRequired: true,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'StorageGateway_20130630.DetachVolume'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'VolumeARN': volumeARN,
if (forceDetach != null) 'ForceDetach': forceDetach,
},
);
return DetachVolumeOutput.fromJson(jsonResponse.body);
}