:doc:`Rekognition <../../rekognition>` / Client / update_dataset_entries

**********************
update_dataset_entries
**********************



.. py:method:: Rekognition.Client.update_dataset_entries(**kwargs)

  

  .. note::

    

    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.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/rekognition-2016-06-27/UpdateDatasetEntries>`_  


  **Request Syntax**
  ::

    response = client.update_dataset_entries(
        DatasetArn='string',
        Changes={
            'GroundTruth': b'bytes'
        }
    )
    
  :type DatasetArn: string
  :param DatasetArn: **[REQUIRED]** 

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

    

  
  :type Changes: dict
  :param Changes: **[REQUIRED]** 

    The changes that you want to make to the dataset.

    

  
    - **GroundTruth** *(bytes) --* **[REQUIRED]** 

      A Base64-encoded binary data object containing one or JSON lines that either update the dataset or are additions to the dataset. You change a dataset by calling  UpdateDatasetEntries. If you are using an AWS SDK to call ``UpdateDatasetEntries``, you don't need to encode ``Changes`` as the SDK encodes the data for you.

       

      For example JSON lines, see Image-Level labels in manifest files and and Object localization in manifest files in the *Amazon Rekognition Custom Labels Developer Guide*.

      

    
  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`Rekognition.Client.exceptions.InternalServerError`

  
  *   :py:class:`Rekognition.Client.exceptions.ThrottlingException`

  
  *   :py:class:`Rekognition.Client.exceptions.ProvisionedThroughputExceededException`

  
  *   :py:class:`Rekognition.Client.exceptions.InvalidParameterException`

  
  *   :py:class:`Rekognition.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`Rekognition.Client.exceptions.LimitExceededException`

  
  *   :py:class:`Rekognition.Client.exceptions.ResourceInUseException`

  
  *   :py:class:`Rekognition.Client.exceptions.ResourceNotFoundException`

  