<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></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="datalabeling_v1beta1.projects.datasets.annotatedDatasets.dataItems.html">dataItems()</a></code>
</p>
<p class="firstline">Returns the dataItems Resource.</p>

<p class="toc_element">
  <code><a href="datalabeling_v1beta1.projects.datasets.annotatedDatasets.examples.html">examples()</a></code>
</p>
<p class="firstline">Returns the examples Resource.</p>

<p class="toc_element">
  <code><a href="datalabeling_v1beta1.projects.datasets.annotatedDatasets.feedbackThreads.html">feedbackThreads()</a></code>
</p>
<p class="firstline">Returns the feedbackThreads Resource.</p>

<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="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes an annotated dataset by resource name.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets an annotated dataset by resource name.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, pageToken=None, pageSize=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists annotated datasets for a dataset. Pagination is supported.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</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="delete">delete(name, x__xgafv=None)</code>
  <pre>Deletes an annotated dataset by resource name.

Args:
  name: string, Required. Name of the annotated dataset to delete, format: projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/ {annotated_dataset_id} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets an annotated dataset by resource name.

Args:
  name: string, Required. Name of the annotated dataset to get, format: projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/ {annotated_dataset_id} (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # AnnotatedDataset is a set holding annotations for data in a Dataset. Each labeling task will generate an AnnotatedDataset under the Dataset that the task is requested for.
    &quot;labelStats&quot;: { # Statistics about annotation specs. # Output only. Per label statistics.
      &quot;exampleCount&quot;: { # Map of each annotation spec&#x27;s example count. Key is the annotation spec name and value is the number of examples for that annotation spec. If the annotated dataset does not have annotation spec, the map will return a pair where the key is empty string and value is the total number of annotations.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
    },
    &quot;annotationType&quot;: &quot;A String&quot;, # Output only. Type of the annotation. It is specified when starting labeling task.
    &quot;metadata&quot;: { # Metadata on AnnotatedDataset. # Output only. Additional information about AnnotatedDataset.
      &quot;imageClassificationConfig&quot;: { # Config for image classification human labeling task. # Configuration for image classification task.
        &quot;answerAggregationType&quot;: &quot;A String&quot;, # Optional. The type of how to aggregate answers.
        &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
        &quot;allowMultiLabel&quot;: True or False, # Optional. If allow_multi_label is true, contributors are able to choose multiple labels for one image.
      },
      &quot;videoClassificationConfig&quot;: { # Config for video classification human labeling task. Currently two types of video classification are supported: 1. Assign labels on the entire video. 2. Split the video into multiple video clips based on camera shot, and assign labels on each video clip. # Configuration for video classification task.
        &quot;applyShotDetection&quot;: True or False, # Optional. Option to apply shot detection on the video.
        &quot;annotationSpecSetConfigs&quot;: [ # Required. The list of annotation spec set configs. Since watching a video clip takes much longer time than an image, we support label with multiple AnnotationSpecSet at the same time. Labels in each AnnotationSpecSet will be shown in a group to contributors. Contributors can select one or more (depending on whether to allow multi label) from each group.
          { # Annotation spec set with the setting of allowing multi labels or not.
            &quot;allowMultiLabel&quot;: True or False, # Optional. If allow_multi_label is true, contributors are able to choose multiple labels from one annotation spec set.
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
          },
        ],
      },
      &quot;textClassificationConfig&quot;: { # Config for text classification human labeling task. # Configuration for text classification task.
        &quot;sentimentConfig&quot;: { # Config for setting up sentiments. # Optional. Configs for sentiment selection.
          &quot;enableLabelSentimentSelection&quot;: True or False, # If set to true, contributors will have the option to select sentiment of the label they selected, to mark it as negative or positive label. Default is false.
        },
        &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
        &quot;allowMultiLabel&quot;: True or False, # Optional. If allow_multi_label is true, contributors are able to choose multiple labels for one text segment.
      },
      &quot;textEntityExtractionConfig&quot;: { # Config for text entity extraction human labeling task. # Configuration for text entity extraction task.
        &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
      },
      &quot;polylineConfig&quot;: { # Config for image polyline human labeling task. # Configuration for image polyline task.
        &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
        &quot;instructionMessage&quot;: &quot;A String&quot;, # Optional. Instruction message showed on contributors UI.
      },
      &quot;humanAnnotationConfig&quot;: { # Configuration for how human labeling task should be done. # HumanAnnotationConfig used when requesting the human labeling task for this AnnotatedDataset.
        &quot;questionDuration&quot;: &quot;A String&quot;, # Optional. Maximum duration for contributors to answer a question. Maximum is 3600 seconds. Default is 3600 seconds.
        &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The Language of this question, as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). Default value is en-US. Only need to set this when task is language related. For example, French text classification.
        &quot;userEmailAddress&quot;: &quot;A String&quot;, # Email of the user who started the labeling task and should be notified by email. If empty no notification will be sent.
        &quot;instruction&quot;: &quot;A String&quot;, # Required. Instruction resource name.
        &quot;contributorEmails&quot;: [ # Optional. If you want your own labeling contributors to manage and work on this labeling request, you can set these contributors here. We will give them access to the question types in crowdcompute. Note that these emails must be registered in crowdcompute worker UI: https://crowd-compute.appspot.com/
          &quot;A String&quot;,
        ],
        &quot;labelGroup&quot;: &quot;A String&quot;, # Optional. A human-readable label used to logically group labeling tasks. This string must match the regular expression `[a-zA-Z\\d_-]{0,128}`.
        &quot;replicaCount&quot;: 42, # Optional. Replication of questions. Each question will be sent to up to this number of contributors to label. Aggregated answers will be returned. Default is set to 1. For image related labeling, valid values are 1, 3, 5.
        &quot;annotatedDatasetDescription&quot;: &quot;A String&quot;, # Optional. A human-readable description for AnnotatedDataset. The description can be up to 10000 characters long.
        &quot;annotatedDatasetDisplayName&quot;: &quot;A String&quot;, # Required. A human-readable name for AnnotatedDataset defined by users. Maximum of 64 characters .
      },
      &quot;objectDetectionConfig&quot;: { # Config for video object detection human labeling task. Object detection will be conducted on the images extracted from the video, and those objects will be labeled with bounding boxes. User need to specify the number of images to be extracted per second as the extraction frame rate. # Configuration for video object detection task.
        &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
        &quot;extractionFrameRate&quot;: 3.14, # Required. Number of frames per second to be extracted from the video.
      },
      &quot;objectTrackingConfig&quot;: { # Config for video object tracking human labeling task. # Configuration for video object tracking task.
        &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
        &quot;overlapLength&quot;: 42, # The overlap length between different video clips. Users can configure is field in seconds, if not set, default value is 0.3s.
        &quot;clipLength&quot;: 42, # Videos will be cut to smaller clips to make it easier for labelers to work on. Users can configure is field in seconds, if not set, default value is 20s.
      },
      &quot;eventConfig&quot;: { # Config for video event human labeling task. # Configuration for video event labeling task.
        &quot;annotationSpecSets&quot;: [ # Required. The list of annotation spec set resource name. Similar to video classification, we support selecting event from multiple AnnotationSpecSet at the same time.
          &quot;A String&quot;,
        ],
        &quot;overlapLength&quot;: 42, # The overlap length between different video clips. Users can configure is field in seconds, if not set, default value is 1s.
        &quot;clipLength&quot;: 42, # Videos will be cut to smaller clips to make it easier for labelers to work on. Users can configure is field in seconds, if not set, default value is 60s.
      },
      &quot;segmentationConfig&quot;: { # Config for image segmentation # Configuration for image segmentation task.
        &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name. format: projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}
        &quot;instructionMessage&quot;: &quot;A String&quot;, # Instruction message showed on labelers UI.
      },
      &quot;boundingPolyConfig&quot;: { # Config for image bounding poly (and bounding box) human labeling task. # Configuration for image bounding box and bounding poly task.
        &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
        &quot;instructionMessage&quot;: &quot;A String&quot;, # Optional. Instruction message showed on contributors UI.
      },
    },
    &quot;displayName&quot;: &quot;A String&quot;, # Output only. The display name of the AnnotatedDataset. It is specified in HumanAnnotationConfig when user starts a labeling task. Maximum of 64 characters.
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time the AnnotatedDataset was created.
    &quot;annotationSource&quot;: &quot;A String&quot;, # Output only. Source of the annotation.
    &quot;exampleCount&quot;: &quot;A String&quot;, # Output only. Number of examples in the annotated dataset.
    &quot;description&quot;: &quot;A String&quot;, # Output only. The description of the AnnotatedDataset. It is specified in HumanAnnotationConfig when user starts a labeling task. Maximum of 10000 characters.
    &quot;blockingResources&quot;: [ # Output only. The names of any related resources that are blocking changes to the annotated dataset.
      &quot;A String&quot;,
    ],
    &quot;completedExampleCount&quot;: &quot;A String&quot;, # Output only. Number of examples that have annotation in the annotated dataset.
    &quot;name&quot;: &quot;A String&quot;, # Output only. AnnotatedDataset resource name in format of: projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/ {annotated_dataset_id}
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, pageToken=None, pageSize=None, x__xgafv=None)</code>
  <pre>Lists annotated datasets for a dataset. Pagination is supported.

Args:
  parent: string, Required. Name of the dataset to list annotated datasets, format: projects/{project_id}/datasets/{dataset_id} (required)
  filter: string, Optional. Filter is not supported at this moment.
  pageToken: string, Optional. A token identifying a page of results for the server to return. Typically obtained by ListAnnotatedDatasetsResponse.next_page_token of the previous [DataLabelingService.ListAnnotatedDatasets] call. Return first page if empty.
  pageSize: integer, Optional. Requested page size. Server may return fewer results than requested. Default value is 100.
  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 annotated datasets for a dataset.
    &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve next page of results.
    &quot;annotatedDatasets&quot;: [ # The list of annotated datasets to return.
      { # AnnotatedDataset is a set holding annotations for data in a Dataset. Each labeling task will generate an AnnotatedDataset under the Dataset that the task is requested for.
        &quot;labelStats&quot;: { # Statistics about annotation specs. # Output only. Per label statistics.
          &quot;exampleCount&quot;: { # Map of each annotation spec&#x27;s example count. Key is the annotation spec name and value is the number of examples for that annotation spec. If the annotated dataset does not have annotation spec, the map will return a pair where the key is empty string and value is the total number of annotations.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
        &quot;annotationType&quot;: &quot;A String&quot;, # Output only. Type of the annotation. It is specified when starting labeling task.
        &quot;metadata&quot;: { # Metadata on AnnotatedDataset. # Output only. Additional information about AnnotatedDataset.
          &quot;imageClassificationConfig&quot;: { # Config for image classification human labeling task. # Configuration for image classification task.
            &quot;answerAggregationType&quot;: &quot;A String&quot;, # Optional. The type of how to aggregate answers.
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
            &quot;allowMultiLabel&quot;: True or False, # Optional. If allow_multi_label is true, contributors are able to choose multiple labels for one image.
          },
          &quot;videoClassificationConfig&quot;: { # Config for video classification human labeling task. Currently two types of video classification are supported: 1. Assign labels on the entire video. 2. Split the video into multiple video clips based on camera shot, and assign labels on each video clip. # Configuration for video classification task.
            &quot;applyShotDetection&quot;: True or False, # Optional. Option to apply shot detection on the video.
            &quot;annotationSpecSetConfigs&quot;: [ # Required. The list of annotation spec set configs. Since watching a video clip takes much longer time than an image, we support label with multiple AnnotationSpecSet at the same time. Labels in each AnnotationSpecSet will be shown in a group to contributors. Contributors can select one or more (depending on whether to allow multi label) from each group.
              { # Annotation spec set with the setting of allowing multi labels or not.
                &quot;allowMultiLabel&quot;: True or False, # Optional. If allow_multi_label is true, contributors are able to choose multiple labels from one annotation spec set.
                &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
              },
            ],
          },
          &quot;textClassificationConfig&quot;: { # Config for text classification human labeling task. # Configuration for text classification task.
            &quot;sentimentConfig&quot;: { # Config for setting up sentiments. # Optional. Configs for sentiment selection.
              &quot;enableLabelSentimentSelection&quot;: True or False, # If set to true, contributors will have the option to select sentiment of the label they selected, to mark it as negative or positive label. Default is false.
            },
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
            &quot;allowMultiLabel&quot;: True or False, # Optional. If allow_multi_label is true, contributors are able to choose multiple labels for one text segment.
          },
          &quot;textEntityExtractionConfig&quot;: { # Config for text entity extraction human labeling task. # Configuration for text entity extraction task.
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
          },
          &quot;polylineConfig&quot;: { # Config for image polyline human labeling task. # Configuration for image polyline task.
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
            &quot;instructionMessage&quot;: &quot;A String&quot;, # Optional. Instruction message showed on contributors UI.
          },
          &quot;humanAnnotationConfig&quot;: { # Configuration for how human labeling task should be done. # HumanAnnotationConfig used when requesting the human labeling task for this AnnotatedDataset.
            &quot;questionDuration&quot;: &quot;A String&quot;, # Optional. Maximum duration for contributors to answer a question. Maximum is 3600 seconds. Default is 3600 seconds.
            &quot;languageCode&quot;: &quot;A String&quot;, # Optional. The Language of this question, as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). Default value is en-US. Only need to set this when task is language related. For example, French text classification.
            &quot;userEmailAddress&quot;: &quot;A String&quot;, # Email of the user who started the labeling task and should be notified by email. If empty no notification will be sent.
            &quot;instruction&quot;: &quot;A String&quot;, # Required. Instruction resource name.
            &quot;contributorEmails&quot;: [ # Optional. If you want your own labeling contributors to manage and work on this labeling request, you can set these contributors here. We will give them access to the question types in crowdcompute. Note that these emails must be registered in crowdcompute worker UI: https://crowd-compute.appspot.com/
              &quot;A String&quot;,
            ],
            &quot;labelGroup&quot;: &quot;A String&quot;, # Optional. A human-readable label used to logically group labeling tasks. This string must match the regular expression `[a-zA-Z\\d_-]{0,128}`.
            &quot;replicaCount&quot;: 42, # Optional. Replication of questions. Each question will be sent to up to this number of contributors to label. Aggregated answers will be returned. Default is set to 1. For image related labeling, valid values are 1, 3, 5.
            &quot;annotatedDatasetDescription&quot;: &quot;A String&quot;, # Optional. A human-readable description for AnnotatedDataset. The description can be up to 10000 characters long.
            &quot;annotatedDatasetDisplayName&quot;: &quot;A String&quot;, # Required. A human-readable name for AnnotatedDataset defined by users. Maximum of 64 characters .
          },
          &quot;objectDetectionConfig&quot;: { # Config for video object detection human labeling task. Object detection will be conducted on the images extracted from the video, and those objects will be labeled with bounding boxes. User need to specify the number of images to be extracted per second as the extraction frame rate. # Configuration for video object detection task.
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
            &quot;extractionFrameRate&quot;: 3.14, # Required. Number of frames per second to be extracted from the video.
          },
          &quot;objectTrackingConfig&quot;: { # Config for video object tracking human labeling task. # Configuration for video object tracking task.
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
            &quot;overlapLength&quot;: 42, # The overlap length between different video clips. Users can configure is field in seconds, if not set, default value is 0.3s.
            &quot;clipLength&quot;: 42, # Videos will be cut to smaller clips to make it easier for labelers to work on. Users can configure is field in seconds, if not set, default value is 20s.
          },
          &quot;eventConfig&quot;: { # Config for video event human labeling task. # Configuration for video event labeling task.
            &quot;annotationSpecSets&quot;: [ # Required. The list of annotation spec set resource name. Similar to video classification, we support selecting event from multiple AnnotationSpecSet at the same time.
              &quot;A String&quot;,
            ],
            &quot;overlapLength&quot;: 42, # The overlap length between different video clips. Users can configure is field in seconds, if not set, default value is 1s.
            &quot;clipLength&quot;: 42, # Videos will be cut to smaller clips to make it easier for labelers to work on. Users can configure is field in seconds, if not set, default value is 60s.
          },
          &quot;segmentationConfig&quot;: { # Config for image segmentation # Configuration for image segmentation task.
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name. format: projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}
            &quot;instructionMessage&quot;: &quot;A String&quot;, # Instruction message showed on labelers UI.
          },
          &quot;boundingPolyConfig&quot;: { # Config for image bounding poly (and bounding box) human labeling task. # Configuration for image bounding box and bounding poly task.
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
            &quot;instructionMessage&quot;: &quot;A String&quot;, # Optional. Instruction message showed on contributors UI.
          },
        },
        &quot;displayName&quot;: &quot;A String&quot;, # Output only. The display name of the AnnotatedDataset. It is specified in HumanAnnotationConfig when user starts a labeling task. Maximum of 64 characters.
        &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time the AnnotatedDataset was created.
        &quot;annotationSource&quot;: &quot;A String&quot;, # Output only. Source of the annotation.
        &quot;exampleCount&quot;: &quot;A String&quot;, # Output only. Number of examples in the annotated dataset.
        &quot;description&quot;: &quot;A String&quot;, # Output only. The description of the AnnotatedDataset. It is specified in HumanAnnotationConfig when user starts a labeling task. Maximum of 10000 characters.
        &quot;blockingResources&quot;: [ # Output only. The names of any related resources that are blocking changes to the annotated dataset.
          &quot;A String&quot;,
        ],
        &quot;completedExampleCount&quot;: &quot;A String&quot;, # Output only. Number of examples that have annotation in the annotated dataset.
        &quot;name&quot;: &quot;A String&quot;, # Output only. AnnotatedDataset resource name in format of: projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/ {annotated_dataset_id}
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</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>