updateDatasetEntries method

Future<void> updateDatasetEntries({
  1. required DatasetChanges changes,
  2. required String datasetArn,
})
Adds or updates one or more entries (images) in a dataset. An entry is a JSON Line which contains the information for a single image, including the image location, assigned labels, and object location bounding boxes. For more information, see Image-Level labels in manifest files and Object localization in manifest files in the Amazon Rekognition Custom Labels Developer Guide.

If the source-ref field in the JSON line references an existing image, the existing image in the dataset is updated. If source-ref field doesn't reference an existing image, the image is added as a new image to the dataset.

You specify the changes that you want to make in the Changes input parameter. There isn't a limit to the number JSON Lines that you can change, but the size of Changes must be less than 5MB.

UpdateDatasetEntries returns immediatly, but the dataset update might take a while to complete. Use DescribeDataset to check the current status. The dataset updated successfully if the value of Status is UPDATE_COMPLETE.

To check if any non-terminal errors occured, call ListDatasetEntries and check for the presence of errors lists in the JSON Lines.

Dataset update fails if a terminal error occurs (Status = UPDATE_FAILED). Currently, you can't access the terminal error information from the Amazon Rekognition Custom Labels SDK.

This operation requires permissions to perform the rekognition:UpdateDatasetEntries action.

May throw AccessDeniedException. May throw InternalServerError. May throw InvalidParameterException. May throw LimitExceededException. May throw ProvisionedThroughputExceededException. May throw ResourceInUseException. May throw ResourceNotFoundException. May throw ThrottlingException.

Parameter changes : The changes that you want to make to the dataset.

Parameter datasetArn : The Amazon Resource Name (ARN) of the dataset that you want to update.

Implementation

Future<void> updateDatasetEntries({
  required DatasetChanges changes,
  required String datasetArn,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'RekognitionService.UpdateDatasetEntries'
  };
  await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Changes': changes,
      'DatasetArn': datasetArn,
    },
  );
}