<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, pageSize=None, pageToken=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;annotationSource&quot;: &quot;A String&quot;, # Output only. Source of the annotation.
  &quot;annotationType&quot;: &quot;A String&quot;, # Output only. Type of the annotation. It is specified when starting labeling task.
  &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;createTime&quot;: &quot;A String&quot;, # Output only. Time the AnnotatedDataset was created.
  &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;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;exampleCount&quot;: &quot;A String&quot;, # Output only. Number of examples in the annotated dataset.
  &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;metadata&quot;: { # Metadata on AnnotatedDataset. # Output only. Additional information about AnnotatedDataset.
    &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;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;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;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;humanAnnotationConfig&quot;: { # Configuration for how human labeling task should be done. # HumanAnnotationConfig used when requesting the human labeling task for this AnnotatedDataset.
      &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;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;instruction&quot;: &quot;A String&quot;, # Required. Instruction resource name.
      &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;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;questionDuration&quot;: &quot;A String&quot;, # Optional. Maximum duration for contributors to answer a question. Maximum is 3600 seconds. Default is 3600 seconds.
      &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;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;imageClassificationConfig&quot;: { # Config for image classification human labeling task. # Configuration for image classification task.
      &quot;allowMultiLabel&quot;: True or False, # Optional. If allow_multi_label is true, contributors are able to choose multiple labels for one image.
      &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
      &quot;answerAggregationType&quot;: &quot;A String&quot;, # Optional. The type of how to aggregate answers.
    },
    &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;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;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;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;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;textClassificationConfig&quot;: { # Config for text classification human labeling task. # Configuration for text classification task.
      &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;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
      &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;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;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;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;applyShotDetection&quot;: True or False, # Optional. Option to apply shot detection on the video.
    },
  },
  &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, pageSize=None, pageToken=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.
  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 ListAnnotatedDatasetsResponse.next_page_token of the previous [DataLabelingService.ListAnnotatedDatasets] 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 annotated datasets for a dataset.
  &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;annotationSource&quot;: &quot;A String&quot;, # Output only. Source of the annotation.
      &quot;annotationType&quot;: &quot;A String&quot;, # Output only. Type of the annotation. It is specified when starting labeling task.
      &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;createTime&quot;: &quot;A String&quot;, # Output only. Time the AnnotatedDataset was created.
      &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;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;exampleCount&quot;: &quot;A String&quot;, # Output only. Number of examples in the annotated dataset.
      &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;metadata&quot;: { # Metadata on AnnotatedDataset. # Output only. Additional information about AnnotatedDataset.
        &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;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;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;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;humanAnnotationConfig&quot;: { # Configuration for how human labeling task should be done. # HumanAnnotationConfig used when requesting the human labeling task for this AnnotatedDataset.
          &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;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;instruction&quot;: &quot;A String&quot;, # Required. Instruction resource name.
          &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;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;questionDuration&quot;: &quot;A String&quot;, # Optional. Maximum duration for contributors to answer a question. Maximum is 3600 seconds. Default is 3600 seconds.
          &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;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;imageClassificationConfig&quot;: { # Config for image classification human labeling task. # Configuration for image classification task.
          &quot;allowMultiLabel&quot;: True or False, # Optional. If allow_multi_label is true, contributors are able to choose multiple labels for one image.
          &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
          &quot;answerAggregationType&quot;: &quot;A String&quot;, # Optional. The type of how to aggregate answers.
        },
        &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;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;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;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;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;textClassificationConfig&quot;: { # Config for text classification human labeling task. # Configuration for text classification task.
          &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;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
          &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;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;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;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;applyShotDetection&quot;: True or False, # Optional. Option to apply shot detection on the video.
        },
      },
      &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}
    },
  ],
  &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(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>