deleteDataset method

Future<DeleteDatasetResponse> deleteDataset({
  1. required String datasetId,
  2. String? datasetVersion,
})

Deletes a dataset version or an entire dataset (all versions + name claim). Asynchronous 202. State transitions: - If datasetVersion is absent (full delete): status transitions to DELETING immediately. - If datasetVersion is provided (version-specific delete): status transitions to UPDATING. State guard (full delete): Returns ConflictException (DATASET_NOT_READY) if the dataset status is in {CREATING, UPDATING}. Deletion is allowed from ACTIVE, CREATE_FAILED, UPDATE_FAILED, and DELETE_FAILED states. State guard (version-specific delete): Returns ConflictException (DATASET_NOT_READY) if the dataset status is not in {ACTIVE, CREATE_FAILED, UPDATE_FAILED}. Fails with ConflictException (REFERENCED_BY_EVAL_JOB) if referenced by an active evaluation job (full delete only). If the delete workflow fails after retries, status is set to DELETE_FAILED (full delete) or UPDATE_FAILED (version-specific delete). Calling DeleteDataset on a DELETE_FAILED dataset re-triggers the delete workflow (idempotent retry path). Version parameter: - If datasetVersion is absent: deletes ALL versions and the Dataset record itself. - If datasetVersion is provided: deletes only that specific DatasetVersion. Returns ResourceNotFoundException if the specified version does not exist.

May throw AccessDeniedException. May throw ConflictException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw ValidationException.

Parameter datasetId : The unique identifier of the dataset to delete.

Parameter datasetVersion : Optional version to delete. Use "DRAFT" or omit to delete the draft. Returns ResourceNotFoundException if the specified version does not exist.

Implementation

Future<DeleteDatasetResponse> deleteDataset({
  required String datasetId,
  String? datasetVersion,
}) async {
  final $query = <String, List<String>>{
    if (datasetVersion != null) 'datasetVersion': [datasetVersion],
  };
  final response = await _protocol.send(
    payload: null,
    method: 'DELETE',
    requestUri: '/datasets/${Uri.encodeComponent(datasetId)}',
    queryParams: $query,
    exceptionFnMap: _exceptionFns,
  );
  return DeleteDatasetResponse.fromJson(response);
}