docs: def objects_copy(self, source_bucket, source_key, target_bucket, target_key):
      """Updates the metadata associated with an object.
  
      Args:
        source_bucket: the name of the bucket containing the source object.
        source_key: the key of the source object being copied.
        target_bucket: the name of the bucket that will contain the copied object.
        target_key: the key of the copied object.
      Returns:
        A parsed object information dictionary.
      Raises:
        Exception if there is an error performing the operation.
      """
      url = Api._ENDPOINT + (Api._OBJECT_COPY_PATH % (source_bucket, Api._escape_key(source_key),
                                                      target_bucket, Api._escape_key(target_key)))
      return datalab.utils.Http.request(url, method='POST', credentials=self._credentials)