<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="datalabeling_v1beta1.html">Data Labeling API</a> . <a href="datalabeling_v1beta1.projects.html">projects</a> . <a href="datalabeling_v1beta1.projects.datasets.html">datasets</a> . <a href="datalabeling_v1beta1.projects.datasets.annotatedDatasets.html">annotatedDatasets</a> . <a href="datalabeling_v1beta1.projects.datasets.annotatedDatasets.dataItems.html">dataItems</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a data item in a dataset by resource name. This API can be called after data are imported into dataset.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists data items in a dataset. This API can be called after data are imported into dataset. Pagination is supported.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets a data item in a dataset by resource name. This API can be called after data are imported into dataset.

Args:
  name: string, Required. The name of the data item to get, format: projects/{project_id}/datasets/{dataset_id}/dataItems/{data_item_id} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # DataItem is a piece of data, without annotation. For example, an image.
  &quot;imagePayload&quot;: { # Container of information about an image. # The image payload, a container of the image bytes/uri.
    &quot;imageThumbnail&quot;: &quot;A String&quot;, # A byte string of a thumbnail image.
    &quot;imageUri&quot;: &quot;A String&quot;, # Image uri from the user bucket.
    &quot;mimeType&quot;: &quot;A String&quot;, # Image format.
    &quot;signedUri&quot;: &quot;A String&quot;, # Signed uri of the image file in the service bucket.
  },
  &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the data item, in format of: projects/{project_id}/datasets/{dataset_id}/dataItems/{data_item_id}
  &quot;textPayload&quot;: { # Container of information about a piece of text. # The text payload, a container of text content.
    &quot;textContent&quot;: &quot;A String&quot;, # Text content.
  },
  &quot;videoPayload&quot;: { # Container of information of a video. # The video payload, a container of the video uri.
    &quot;frameRate&quot;: 3.14, # FPS of the video.
    &quot;mimeType&quot;: &quot;A String&quot;, # Video format.
    &quot;signedUri&quot;: &quot;A String&quot;, # Signed uri of the video file in the service bucket.
    &quot;videoThumbnails&quot;: [ # The list of video thumbnails.
      { # Container of information of a video thumbnail.
        &quot;thumbnail&quot;: &quot;A String&quot;, # A byte string of the video frame.
        &quot;timeOffset&quot;: &quot;A String&quot;, # Time offset relative to the beginning of the video, corresponding to the video frame where the thumbnail has been extracted from.
      },
    ],
    &quot;videoUri&quot;: &quot;A String&quot;, # Video uri from the user bucket.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists data items in a dataset. This API can be called after data are imported into dataset. Pagination is supported.

Args:
  parent: string, Required. Name of the dataset to list data items, format: projects/{project_id}/datasets/{dataset_id} (required)
  filter: string, Optional. Filter is not supported at this moment.
  pageSize: integer, Optional. Requested page size. Server may return fewer results than requested. Default value is 100.
  pageToken: string, Optional. A token identifying a page of results for the server to return. Typically obtained by ListDataItemsResponse.next_page_token of the previous [DataLabelingService.ListDataItems] call. Return first page if empty.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Results of listing data items in a dataset.
  &quot;dataItems&quot;: [ # The list of data items to return.
    { # DataItem is a piece of data, without annotation. For example, an image.
      &quot;imagePayload&quot;: { # Container of information about an image. # The image payload, a container of the image bytes/uri.
        &quot;imageThumbnail&quot;: &quot;A String&quot;, # A byte string of a thumbnail image.
        &quot;imageUri&quot;: &quot;A String&quot;, # Image uri from the user bucket.
        &quot;mimeType&quot;: &quot;A String&quot;, # Image format.
        &quot;signedUri&quot;: &quot;A String&quot;, # Signed uri of the image file in the service bucket.
      },
      &quot;name&quot;: &quot;A String&quot;, # Output only. Name of the data item, in format of: projects/{project_id}/datasets/{dataset_id}/dataItems/{data_item_id}
      &quot;textPayload&quot;: { # Container of information about a piece of text. # The text payload, a container of text content.
        &quot;textContent&quot;: &quot;A String&quot;, # Text content.
      },
      &quot;videoPayload&quot;: { # Container of information of a video. # The video payload, a container of the video uri.
        &quot;frameRate&quot;: 3.14, # FPS of the video.
        &quot;mimeType&quot;: &quot;A String&quot;, # Video format.
        &quot;signedUri&quot;: &quot;A String&quot;, # Signed uri of the video file in the service bucket.
        &quot;videoThumbnails&quot;: [ # The list of video thumbnails.
          { # Container of information of a video thumbnail.
            &quot;thumbnail&quot;: &quot;A String&quot;, # A byte string of the video frame.
            &quot;timeOffset&quot;: &quot;A String&quot;, # Time offset relative to the beginning of the video, corresponding to the video frame where the thumbnail has been extracted from.
          },
        ],
        &quot;videoUri&quot;: &quot;A String&quot;, # Video uri from the user bucket.
      },
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve next page of results.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

</body></html>