detachVolume method

Future<DetachVolumeOutput> detachVolume({
  1. required String volumeARN,
  2. bool? forceDetach,
})

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);
}