This operation applies only to Amazon Rekognition Custom Labels.
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.
Parameters:
-
dataset_arn
(DatasetArn)
–
The Amazon Resource Name (ARN) of the dataset that you want to update.
-
changes
(DatasetChanges)
–
The changes that you want to make to the dataset.
Raises:
-
AccessDeniedException
–
You are not authorized to perform the action.
-
InternalServerError
–
Amazon Rekognition experienced a service issue. Try your call again.
-
InvalidParameterException
–
Input parameter violated a constraint. Validate your parameter before calling the API operation again.
-
LimitExceededException
–
An Amazon Rekognition service limit was exceeded. For example, if you start too many jobs concurrently, subsequent calls to start operations (ex: StartLabelDetection) will raise a LimitExceededException exception (HTTP status code: 400) until the number of concurrently running jobs is below the Amazon Rekognition service limit.
-
ProvisionedThroughputExceededException
–
The number of requests exceeded your throughput limit. If you want to increase this limit, contact Amazon Rekognition.
-
ResourceInUseException
–
The specified resource is already being used.
-
ResourceNotFoundException
–
The resource specified in the request cannot be found.
-
ThrottlingException
–
Amazon Rekognition is temporarily unable to process the request. Try your call again.
-
UnknownServiceError
–
The service returned an error code this client does not model.
Examples:
To-add dataset entries to an Amazon Rekognition Custom Labels dataset
Adds dataset entries to an Amazon Rekognition Custom Labels dataset.
>>> client.update_dataset_entries(dataset_arn='arn:aws:rekognition:us-east-1:111122223333:project/my-proj-2/dataset/train/1690564858106', changes={'GroundTruth': '{"source-ref":"s3://custom-labels-console-us-east-1-111111111/assets/flowers_1_test_dataset/mediterranean_spurge4.jpg","mediterranean_spurge":1,"mediterranean_spurge-metadata":{"confidence":1,"job-name":"labeling-job/mediterranean_spurge","class-name":"mediterranean_spurge","human-annotated":"yes","creation-date":"2021-07-11T03:33:42.025Z","type":"groundtruth/image-classification"},"with_leaves":1,"with_leaves-metadata":{"confidence":1,"job-name":"labeling-job/with_leaves","class-name":"with_leaves","human-annotated":"yes","creation-date":"2021-07-11T03:33:42.025Z","type":"groundtruth/image-classification"}}'})
Source code in docs_src/capo_rekognition/_services/rekognition.py
| def update_dataset_entries(
self,
dataset_arn: "capo_rekognition.types.dataset_arn.DatasetArn",
changes: "capo_rekognition.types.dataset_changes.DatasetChanges",
*,
config_overrides: Optional[RekognitionClientConfig] = None,
) -> "capo_rekognition.types.update_dataset_entries_response.UpdateDatasetEntriesResponse":
"""<note> <p>This operation applies only to Amazon Rekognition Custom Labels.</p> </note> <p>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 <i>Amazon Rekognition Custom Labels Developer Guide</i>. </p> <p>If the <code>source-ref</code> field in the JSON line references an existing image, the existing image in the dataset is updated. If <code>source-ref</code> field doesn't reference an existing image, the image is added as a new image to the dataset. </p> <p>You specify the changes that you want to make in the <code>Changes</code> input parameter. There isn't a limit to the number JSON Lines that you can change, but the size of <code>Changes</code> must be less than 5MB.</p> <p> <code>UpdateDatasetEntries</code> returns immediatly, but the dataset update might take a while to complete. Use <a>DescribeDataset</a> to check the current status. The dataset updated successfully if the value of <code>Status</code> is <code>UPDATE_COMPLETE</code>. </p> <p>To check if any non-terminal errors occured, call <a>ListDatasetEntries</a> and check for the presence of <code>errors</code> lists in the JSON Lines.</p> <p>Dataset update fails if a terminal error occurs (<code>Status</code> = <code>UPDATE_FAILED</code>). Currently, you can't access the terminal error information from the Amazon Rekognition Custom Labels SDK. </p> <p>This operation requires permissions to perform the <code>rekognition:UpdateDatasetEntries</code> action.</p>
Args:
dataset_arn: <p> The Amazon Resource Name (ARN) of the dataset that you want to update. </p>
changes: <p> The changes that you want to make to the dataset. </p>
Raises:
capo_rekognition.errors.access_denied_exception.AccessDeniedException: <p>You are not authorized to perform the action.</p>
capo_rekognition.errors.internal_server_error.InternalServerError: <p>Amazon Rekognition experienced a service issue. Try your call again.</p>
capo_rekognition.errors.invalid_parameter_exception.InvalidParameterException: <p>Input parameter violated a constraint. Validate your parameter before calling the API operation again.</p>
capo_rekognition.errors.limit_exceeded_exception.LimitExceededException: <p>An Amazon Rekognition service limit was exceeded. For example, if you start too many jobs concurrently, subsequent calls to start operations (ex: <code>StartLabelDetection</code>) will raise a <code>LimitExceededException</code> exception (HTTP status code: 400) until the number of concurrently running jobs is below the Amazon Rekognition service limit. </p>
capo_rekognition.errors.provisioned_throughput_exceeded_exception.ProvisionedThroughputExceededException: <p>The number of requests exceeded your throughput limit. If you want to increase this limit, contact Amazon Rekognition.</p>
capo_rekognition.errors.resource_in_use_exception.ResourceInUseException: <p>The specified resource is already being used.</p>
capo_rekognition.errors.resource_not_found_exception.ResourceNotFoundException: <p>The resource specified in the request cannot be found.</p>
capo_rekognition.errors.throttling_exception.ThrottlingException: <p>Amazon Rekognition is temporarily unable to process the request. Try your call again.</p>
capo_rekognition.errors.UnknownServiceError: The service returned an error code this client does not model.
Examples:
To-add dataset entries to an Amazon Rekognition Custom Labels dataset
Adds dataset entries to an Amazon Rekognition Custom Labels dataset.
>>> client.update_dataset_entries(dataset_arn='arn:aws:rekognition:us-east-1:111122223333:project/my-proj-2/dataset/train/1690564858106', changes={'GroundTruth': '{"source-ref":"s3://custom-labels-console-us-east-1-111111111/assets/flowers_1_test_dataset/mediterranean_spurge4.jpg","mediterranean_spurge":1,"mediterranean_spurge-metadata":{"confidence":1,"job-name":"labeling-job/mediterranean_spurge","class-name":"mediterranean_spurge","human-annotated":"yes","creation-date":"2021-07-11T03:33:42.025Z","type":"groundtruth/image-classification"},"with_leaves":1,"with_leaves-metadata":{"confidence":1,"job-name":"labeling-job/with_leaves","class-name":"with_leaves","human-annotated":"yes","creation-date":"2021-07-11T03:33:42.025Z","type":"groundtruth/image-classification"}}'})
"""
def _handler(
req: "OperationRequest[capo_rekognition.types.update_dataset_entries_request.UpdateDatasetEntriesRequest]",
) -> OperationResponse[
"capo_rekognition.types.update_dataset_entries_response.UpdateDatasetEntriesResponse"
]:
import capo_rekognition._operations.rekognition_service.update_dataset_entries
output, http_response = (
capo_rekognition._operations.rekognition_service.update_dataset_entries.update_dataset_entries(
req.options, req.input
)
)
return OperationResponse(output=output, response=http_response)
interceptors_, options_ = self.operation_options(
config_overrides, OperationLogging("UpdateDatasetEntries")
)
input_: capo_rekognition.types.update_dataset_entries_request.UpdateDatasetEntriesRequest = {
"dataset_arn": dataset_arn,
"changes": changes,
}
response = execute_pipeline(
OperationRequest(input=input_, options=options_),
handler=_handler,
interceptors=list(interceptors_),
)
response.response.close()
return response.output
|