<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, pageSize=None, filter=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;annotationType&quot;: &quot;A String&quot;, # Output only. Type of the annotation. It is specified when starting labeling task.
    &quot;annotationSource&quot;: &quot;A String&quot;, # Output only. Source of the annotation.
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time the AnnotatedDataset was created.
    &quot;blockingResources&quot;: [ # Output only. The names of any related resources that are blocking changes to the annotated dataset.
      &quot;A String&quot;,
    ],
    &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;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;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;completedExampleCount&quot;: &quot;A String&quot;, # Output only. Number of examples that have annotation in the annotated dataset.
    &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;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;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;annotatedDatasetDisplayName&quot;: &quot;A String&quot;, # Required. A human-readable name for AnnotatedDataset defined by users. Maximum of 64 characters .
        &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;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;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;annotatedDatasetDescription&quot;: &quot;A String&quot;, # Optional. A human-readable description for AnnotatedDataset. The description can be up to 10000 characters long.
        &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;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;instruction&quot;: &quot;A String&quot;, # Required. Instruction resource name.
      },
      &quot;segmentationConfig&quot;: { # Config for image segmentation # Configuration for image segmentation task.
        &quot;instructionMessage&quot;: &quot;A String&quot;, # Instruction message showed on labelers UI.
        &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name. format: projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}
      },
      &quot;boundingPolyConfig&quot;: { # Config for image bounding poly (and bounding box) human labeling task. # Configuration for image bounding box and bounding poly task.
        &quot;instructionMessage&quot;: &quot;A String&quot;, # Optional. Instruction message showed on contributors UI.
        &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;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;objectTrackingConfig&quot;: { # Config for video object tracking human labeling task. # Configuration for video object tracking task.
        &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;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;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;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;polylineConfig&quot;: { # Config for image polyline human labeling task. # Configuration for image polyline task.
        &quot;instructionMessage&quot;: &quot;A String&quot;, # Optional. Instruction message showed on contributors UI.
        &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
      },
      &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;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;,
      },
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageSize=None, filter=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)
  pageSize: integer, Optional. Requested page size. Server may return fewer results than requested. Default value is 100.
  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.
  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;annotationType&quot;: &quot;A String&quot;, # Output only. Type of the annotation. It is specified when starting labeling task.
        &quot;annotationSource&quot;: &quot;A String&quot;, # Output only. Source of the annotation.
        &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time the AnnotatedDataset was created.
        &quot;blockingResources&quot;: [ # Output only. The names of any related resources that are blocking changes to the annotated dataset.
          &quot;A String&quot;,
        ],
        &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;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;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;completedExampleCount&quot;: &quot;A String&quot;, # Output only. Number of examples that have annotation in the annotated dataset.
        &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;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;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;annotatedDatasetDisplayName&quot;: &quot;A String&quot;, # Required. A human-readable name for AnnotatedDataset defined by users. Maximum of 64 characters .
            &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;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;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;annotatedDatasetDescription&quot;: &quot;A String&quot;, # Optional. A human-readable description for AnnotatedDataset. The description can be up to 10000 characters long.
            &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;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;instruction&quot;: &quot;A String&quot;, # Required. Instruction resource name.
          },
          &quot;segmentationConfig&quot;: { # Config for image segmentation # Configuration for image segmentation task.
            &quot;instructionMessage&quot;: &quot;A String&quot;, # Instruction message showed on labelers UI.
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name. format: projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}
          },
          &quot;boundingPolyConfig&quot;: { # Config for image bounding poly (and bounding box) human labeling task. # Configuration for image bounding box and bounding poly task.
            &quot;instructionMessage&quot;: &quot;A String&quot;, # Optional. Instruction message showed on contributors UI.
            &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;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;objectTrackingConfig&quot;: { # Config for video object tracking human labeling task. # Configuration for video object tracking task.
            &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;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;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;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;polylineConfig&quot;: { # Config for image polyline human labeling task. # Configuration for image polyline task.
            &quot;instructionMessage&quot;: &quot;A String&quot;, # Optional. Instruction message showed on contributors UI.
            &quot;annotationSpecSet&quot;: &quot;A String&quot;, # Required. Annotation spec set resource name.
          },
          &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;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;,
          },
        },
      },
    ],
  }</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>