Synchronize new proto/yaml changes.

PiperOrigin-RevId: 254297727
This commit is contained in:
Google APIs 2019-06-20 16:41:38 -07:00 committed by Copybara-Service
parent 277703d53b
commit f01a88710a
12 changed files with 1156 additions and 385 deletions

View File

@ -6,94 +6,69 @@ title: Data Labeling API
apis:
- name: google.cloud.datalabeling.v1beta1.DataLabelingService
types:
- name: google.cloud.datalabeling.v1beta1.CreateInstructionMetadata
- name: google.cloud.datalabeling.v1beta1.ExportDataOperationMetadata
- name: google.cloud.datalabeling.v1beta1.ExportDataOperationResponse
- name: google.cloud.datalabeling.v1beta1.ImportDataOperationMetadata
- name: google.cloud.datalabeling.v1beta1.ImportDataOperationResponse
- name: google.cloud.datalabeling.v1beta1.LabelImageBoundingBoxOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelImageBoundingPolyOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelImageClassificationOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelImageOrientedBoundingBoxOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelImagePolylineOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelImageSegmentationOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelTextClassificationOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelTextEntityExtractionOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelVideoClassificationOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelVideoEventOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelVideoObjectDetectionOperationMetadata
- name: google.cloud.datalabeling.v1beta1.LabelVideoObjectTrackingOperationMetadata
documentation:
summary: Public API for Google Cloud AI Data Labeling Service.
rules:
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
description: |-
Gets the access control policy for a resource. Returns an empty policy
if the resource exists and does not have a policy set.
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
description: |-
Sets the access control policy on the specified resource. Replaces
any existing policy.
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
description: |-
Returns permissions that a caller has on the specified resource. If the
resource does not exist, this will return an empty set of
permissions, not a NOT_FOUND error.
Note: This operation is designed to be used for building
permission-aware UIs and command-line tools, not for authorization
checking. This operation may "fail open" without warning.
backend:
rules:
- selector: google.longrunning.Operations.ListOperations
- selector: 'google.cloud.datalabeling.v1beta1.DataLabelingService.*'
deadline: 60.0
- selector: google.longrunning.Operations.GetOperation
- selector: 'google.iam.v1.IAMPolicy.*'
deadline: 60.0
- selector: google.longrunning.Operations.DeleteOperation
- selector: 'google.longrunning.Operations.*'
deadline: 60.0
- selector: google.longrunning.Operations.CancelOperation
deadline: 60.0
- selector: google.longrunning.Operations.WaitOperation
deadline: 60.0
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
deadline: 60.0
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
deadline: 60.0
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.CreateDataset
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.GetDataset
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.ListDatasets
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteDataset
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.ImportData
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.ExportData
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.GetDataItem
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.ListDataItems
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.GetAnnotatedDataset
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.ListAnnotatedDatasets
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.LabelImage
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.LabelVideo
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.LabelText
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.LabelAudio
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.GetExample
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.ListExamples
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.CreateAnnotationSpecSet
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.GetAnnotationSpecSet
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.ListAnnotationSpecSets
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteAnnotationSpecSet
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.CreateInstruction
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.GetInstruction
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.ListInstructions
deadline: 60.0
- selector: google.cloud.datalabeling.v1beta1.DataLabelingService.DeleteInstruction
deadline: 60.0
http:
rules:
- selector: google.longrunning.Operations.ListOperations
get: '/v1beta1/{name=projects/*}/operations'
- selector: google.longrunning.Operations.GetOperation
get: '/v1beta1/{name=projects/*/operations/*}'
- selector: google.longrunning.Operations.DeleteOperation
delete: '/v1beta1/{name=projects/*/operations/*}'
- selector: google.longrunning.Operations.CancelOperation
post: '/v1beta1/{name=projects/*/operations/*}:cancel'
authentication:
rules:
- selector: '*'
- selector: 'google.cloud.datalabeling.v1beta1.DataLabelingService.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.iam.v1.IAMPolicy.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.longrunning.Operations.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -17,17 +17,15 @@ syntax = "proto3";
package google.cloud.datalabeling.v1beta1;
import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto";
import "google/cloud/datalabeling/v1beta1/data_payloads.proto";
import "google/protobuf/duration.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling";
option java_multiple_files = true;
option java_package = "com.google.cloud.datalabeling.v1beta1";
// Specifies where is the answer from.
enum AnnotationSource {
ANNOTATION_SOURCE_UNSPECIFIED = 0;
@ -36,6 +34,30 @@ enum AnnotationSource {
OPERATOR = 3;
}
// Annotation for Example. Each example may have one or more annotations. For
// example in image classification problem, each image might have one or more
// labels. We call labels binded with this image an Annotation.
message Annotation {
// Output only. Unique name of this annotation, format is:
//
// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/{annotated_dataset}/examples/{example_id}/annotations/{annotation_id}
string name = 1;
// Output only. The source of the annotation.
AnnotationSource annotation_source = 2;
// Output only. This is the actual annotation value, e.g classification,
// bounding box values are stored here.
AnnotationValue annotation_value = 3;
// Output only. Annotation metadata, including information like votes
// for labels.
AnnotationMetadata annotation_metadata = 4;
// Output only. Sentiment for this annotation.
AnnotationSentiment annotation_sentiment = 6;
}
enum AnnotationSentiment {
ANNOTATION_SENTIMENT_UNSPECIFIED = 0;
@ -80,38 +102,14 @@ enum AnnotationType {
// Video event annotation.
VIDEO_EVENT_ANNOTATION = 6;
// Speech to text annotation.
AUDIO_TRANSCRIPTION_ANNOTATION = 7;
// Classification for text.
TEXT_CLASSIFICATION_ANNOTATION = 8;
// Entity extraction for text.
TEXT_ENTITY_EXTRACTION_ANNOTATION = 9;
}
// Annotation for Example. Each example may have one or more annotations. For
// example in image classification problem, each image might have one or more
// labels. We call labels binded with this image an Annotation.
message Annotation {
// Output only. Unique name of this annotation, format is:
//
// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/{annotated_dataset}/examples/{example_id}/annotations/{annotation_id}
string name = 1;
// Output only. The source of the annotation.
AnnotationSource annotation_source = 2;
// Output only. This is the actual annotation value, e.g classification,
// bounding box values are stored here.
AnnotationValue annotation_value = 3;
// Output only. Annotation metadata, including information like votes
// for labels.
AnnotationMetadata annotation_metadata = 4;
// Output only. Sentiment for this annotation.
AnnotationSentiment annotation_sentiment = 6;
// General classification.
GENERAL_CLASSIFICATION_ANNOTATION = 14;
}
// Annotation value for an example.
@ -136,6 +134,9 @@ message AnnotationValue {
// Annotation value for text classification case.
TextClassificationAnnotation text_classification_annotation = 3;
// Annotation value for text entity extraction case.
TextEntityExtractionAnnotation text_entity_extraction_annotation = 10;
// Annotation value for video classification case.
VideoClassificationAnnotation video_classification_annotation = 4;
@ -144,9 +145,6 @@ message AnnotationValue {
// Annotation value for video event case.
VideoEventAnnotation video_event_annotation = 6;
// Annotation value for speech audio recognition case.
AudioRecognitionAnnotation audio_recognition_annotation = 7;
}
}
@ -248,6 +246,24 @@ message TextClassificationAnnotation {
AnnotationSpec annotation_spec = 1;
}
// Text entity extraction annotation.
message TextEntityExtractionAnnotation {
// Label of the text entities.
AnnotationSpec annotation_spec = 1;
// Position of the entity.
SequentialSegment sequential_segment = 2;
}
// Start and end position in a sequence (e.g. text segment).
message SequentialSegment {
// Start position (inclusive).
int32 start = 1;
// End position (exclusive).
int32 end = 2;
}
// A time period inside of an example that has a time dimension (e.g. video).
message TimeSegment {
// Start of the time segment (inclusive), represented as the duration since
@ -302,18 +318,6 @@ message VideoEventAnnotation {
TimeSegment time_segment = 2;
}
// Speech audio recognition.
message AudioRecognitionAnnotation {
// Transcript text representing the words spoken.
string transcript = 1;
// Start position in audio file that the transcription corresponds to.
google.protobuf.Duration start_offset = 2;
// End position in audio file that the transcription corresponds to.
google.protobuf.Duration end_offset = 3;
}
// Additional information associated with the annotation.
message AnnotationMetadata {
// Metadata related to human labeling.
@ -333,5 +337,6 @@ message OperatorMetadata {
// The total number of contributors that choose this label.
int32 label_votes = 3;
// Comments from contributors.
repeated string comments = 4;
}

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -23,13 +23,11 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1
option java_multiple_files = true;
option java_package = "com.google.cloud.datalabeling.v1beta1";
// AnnotationSpecSet is a collection of label definitions. For example, in
// image classification tasks, we define a set of labels, this set is called
// AnnotationSpecSet. AnnotationSpecSet is immutable upon creation.
message AnnotationSpecSet {
// Output only.
// AnnotationSpecSet resource name, format:
// Output only. AnnotationSpecSet resource name, format:
// projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}
string name = 1;
@ -43,6 +41,10 @@ message AnnotationSpecSet {
// Required. The actual spec set defined by the users.
repeated AnnotationSpec annotation_specs = 4;
// Output only. The names of any related resources that are blocking changes
// to the annotation spec set.
repeated string blocking_resources = 5;
}
// Container of information related to one annotation spec.

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -18,11 +18,14 @@ syntax = "proto3";
package google.cloud.datalabeling.v1beta1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/cloud/datalabeling/v1beta1/annotation.proto";
import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto";
import "google/cloud/datalabeling/v1beta1/dataset.proto";
import "google/cloud/datalabeling/v1beta1/evaluation.proto";
import "google/cloud/datalabeling/v1beta1/evaluation_job.proto";
import "google/cloud/datalabeling/v1beta1/human_annotation_config.proto";
import "google/cloud/datalabeling/v1beta1/instruction.proto";
import "google/cloud/datalabeling/v1beta1/operations.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
@ -31,8 +34,11 @@ option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1
option java_multiple_files = true;
option java_package = "com.google.cloud.datalabeling.v1beta1";
service DataLabelingService {
option (google.api.default_host) = "datalabeling.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Creates dataset. If success return a Dataset resource.
rpc CreateDataset(CreateDatasetRequest) returns (Dataset) {
option (google.api.http) = {
@ -99,21 +105,24 @@ service DataLabelingService {
}
// Gets an annotated dataset by resource name.
rpc GetAnnotatedDataset(GetAnnotatedDatasetRequest) returns (AnnotatedDataset) {
rpc GetAnnotatedDataset(GetAnnotatedDatasetRequest)
returns (AnnotatedDataset) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}"
};
}
// Lists annotated datasets for a dataset. Pagination is supported.
rpc ListAnnotatedDatasets(ListAnnotatedDatasetsRequest) returns (ListAnnotatedDatasetsResponse) {
rpc ListAnnotatedDatasets(ListAnnotatedDatasetsRequest)
returns (ListAnnotatedDatasetsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/datasets/*}/annotatedDatasets"
};
}
// Deletes an annotated dataset by resource name.
rpc DeleteAnnotatedDataset(DeleteAnnotatedDatasetRequest) returns (google.protobuf.Empty) {
rpc DeleteAnnotatedDataset(DeleteAnnotatedDatasetRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}"
};
@ -146,15 +155,6 @@ service DataLabelingService {
};
}
// Starts a labeling task for audio. The type of audio labeling task is
// configured by feature in the request.
rpc LabelAudio(LabelAudioRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/datasets/*}/audio:label"
body: "*"
};
}
// Gets an example by resource name, including both data and annotation.
rpc GetExample(GetExampleRequest) returns (Example) {
option (google.api.http) = {
@ -170,7 +170,8 @@ service DataLabelingService {
}
// Creates an annotation spec set by providing a set of labels.
rpc CreateAnnotationSpecSet(CreateAnnotationSpecSetRequest) returns (AnnotationSpecSet) {
rpc CreateAnnotationSpecSet(CreateAnnotationSpecSetRequest)
returns (AnnotationSpecSet) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*}/annotationSpecSets"
body: "*"
@ -178,28 +179,32 @@ service DataLabelingService {
}
// Gets an annotation spec set by resource name.
rpc GetAnnotationSpecSet(GetAnnotationSpecSetRequest) returns (AnnotationSpecSet) {
rpc GetAnnotationSpecSet(GetAnnotationSpecSetRequest)
returns (AnnotationSpecSet) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/annotationSpecSets/*}"
};
}
// Lists annotation spec sets for a project. Pagination is supported.
rpc ListAnnotationSpecSets(ListAnnotationSpecSetsRequest) returns (ListAnnotationSpecSetsResponse) {
rpc ListAnnotationSpecSets(ListAnnotationSpecSetsRequest)
returns (ListAnnotationSpecSetsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*}/annotationSpecSets"
};
}
// Deletes an annotation spec set by resource name.
rpc DeleteAnnotationSpecSet(DeleteAnnotationSpecSetRequest) returns (google.protobuf.Empty) {
rpc DeleteAnnotationSpecSet(DeleteAnnotationSpecSetRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/annotationSpecSets/*}"
};
}
// Creates an instruction for how data should be labeled.
rpc CreateInstruction(CreateInstructionRequest) returns (google.longrunning.Operation) {
rpc CreateInstruction(CreateInstructionRequest)
returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*}/instructions"
body: "*"
@ -214,18 +219,107 @@ service DataLabelingService {
}
// Lists instructions for a project. Pagination is supported.
rpc ListInstructions(ListInstructionsRequest) returns (ListInstructionsResponse) {
rpc ListInstructions(ListInstructionsRequest)
returns (ListInstructionsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*}/instructions"
};
}
// Deletes an instruction object by resource name.
rpc DeleteInstruction(DeleteInstructionRequest) returns (google.protobuf.Empty) {
rpc DeleteInstruction(DeleteInstructionRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/instructions/*}"
};
}
// Gets an evaluation by resource name.
rpc GetEvaluation(GetEvaluationRequest) returns (Evaluation) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/datasets/*/evaluations/*}"
};
}
// Searchs evaluations within a project. Supported filter: evaluation_job,
// evaluation_time.
rpc SearchEvaluations(SearchEvaluationsRequest)
returns (SearchEvaluationsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*}/evaluations:search"
};
}
// Searchs example comparisons in evaluation, in format of examples
// of both ground truth and prediction(s). It is represented as a search with
// evaluation id.
rpc SearchExampleComparisons(SearchExampleComparisonsRequest)
returns (SearchExampleComparisonsResponse) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/datasets/*/evaluations/*}/exampleComparisons:search"
body: "*"
};
}
// Creates an evaluation job.
rpc CreateEvaluationJob(CreateEvaluationJobRequest) returns (EvaluationJob) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*}/evaluationJobs"
body: "*"
};
}
// Updates an evaluation job.
rpc UpdateEvaluationJob(UpdateEvaluationJobRequest) returns (EvaluationJob) {
option (google.api.http) = {
patch: "/v1beta1/{evaluation_job.name=projects/*/evaluationJobs/*}"
body: "evaluation_job"
};
}
// Gets an evaluation job by resource name.
rpc GetEvaluationJob(GetEvaluationJobRequest) returns (EvaluationJob) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/evaluationJobs/*}"
};
}
// Pauses an evaluation job. Pausing a evaluation job that is already in
// PAUSED state will be a no-op.
rpc PauseEvaluationJob(PauseEvaluationJobRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/evaluationJobs/*}:pause"
body: "*"
};
}
// Resumes a paused evaluation job. Deleted evaluation job can't be resumed.
// Resuming a running evaluation job will be a no-op.
rpc ResumeEvaluationJob(ResumeEvaluationJobRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/evaluationJobs/*}:resume"
body: "*"
};
}
// Stops and deletes an evaluation job.
rpc DeleteEvaluationJob(DeleteEvaluationJobRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/evaluationJobs/*}"
};
}
// Lists all evaluation jobs within a project with possible filters.
// Pagination is supported.
rpc ListEvaluationJobs(ListEvaluationJobsRequest)
returns (ListEvaluationJobsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*}/evaluationJobs"
};
}
}
// Request message for CreateDataset.
@ -260,9 +354,9 @@ message ListDatasetsRequest {
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by
// [ListDatasetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListDatasetsResponse.next_page_token] of the previous
// [DataLabelingService.ListDatasets] call.
// Returns the first page if empty.
// [ListDatasetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListDatasetsResponse.next_page_token]
// of the previous [DataLabelingService.ListDatasets] call. Returns the first
// page if empty.
string page_token = 4;
}
@ -290,6 +384,10 @@ message ImportDataRequest {
// Required. Specify the input source of the data.
InputConfig input_config = 2;
// Email of the user who started the import task and should be notified by
// email. If empty no notification will be sent.
string user_email_address = 3;
}
// Request message for ExportData API.
@ -310,6 +408,10 @@ message ExportDataRequest {
// Required. Specify the output destination.
OutputConfig output_config = 4;
// Email of the user who started the export task and should be notified by
// email. If empty no notification will be sent.
string user_email_address = 5;
}
// Request message for GetDataItem.
@ -334,9 +436,9 @@ message ListDataItemsRequest {
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by
// [ListDataItemsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListDataItemsResponse.next_page_token] of the previous
// [DataLabelingService.ListDataItems] call.
// Return first page if empty.
// [ListDataItemsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListDataItemsResponse.next_page_token]
// of the previous [DataLabelingService.ListDataItems] call. Return first page
// if empty.
string page_token = 4;
}
@ -372,20 +474,12 @@ message ListAnnotatedDatasetsRequest {
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by
// [ListAnnotatedDatasetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListAnnotatedDatasetsResponse.next_page_token] of the previous
// [DataLabelingService.ListAnnotatedDatasets] call.
// Return first page if empty.
// [ListAnnotatedDatasetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListAnnotatedDatasetsResponse.next_page_token]
// of the previous [DataLabelingService.ListAnnotatedDatasets] call. Return
// first page if empty.
string page_token = 4;
}
// Request message for DeleteAnnotatedDataset.
message DeleteAnnotatedDatasetRequest {
// Required. Name of the annotated dataset to delete, format:
// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/
// {annotated_dataset_id}
string name = 1;
}
// Results of listing annotated datasets for a dataset.
message ListAnnotatedDatasetsResponse {
// The list of annotated datasets to return.
@ -395,6 +489,14 @@ message ListAnnotatedDatasetsResponse {
string next_page_token = 2;
}
// Request message for DeleteAnnotatedDataset.
message DeleteAnnotatedDatasetRequest {
// Required. Name of the annotated dataset to delete, format:
// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/
// {annotated_dataset_id}
string name = 1;
}
// Request message for starting an image labeling task.
message LabelImageRequest {
// Image labeling task feature.
@ -429,22 +531,22 @@ message LabelImageRequest {
oneof request_config {
// Configuration for image classification task.
// One of image_classification_config, bounding_poly_config,
// polyline_config and segmentation_config is required.
// polyline_config and segmentation_config are required.
ImageClassificationConfig image_classification_config = 4;
// Configuration for bounding box and bounding poly task.
// One of image_classification_config, bounding_poly_config,
// polyline_config and segmentation_config is required.
// polyline_config and segmentation_config are required.
BoundingPolyConfig bounding_poly_config = 5;
// Configuration for polyline task.
// One of image_classification_config, bounding_poly_config,
// polyline_config and segmentation_config is required.
// polyline_config and segmentation_config are required.
PolylineConfig polyline_config = 6;
// Configuration for segmentation task.
// One of image_classification_config, bounding_poly_config,
// polyline_config and segmentation_config is required.
// polyline_config and segmentation_config are required.
SegmentationConfig segmentation_config = 7;
}
@ -551,27 +653,6 @@ message LabelTextRequest {
Feature feature = 6;
}
// Request message for LabelAudio.
message LabelAudioRequest {
// Audio labeling task feature.
enum Feature {
FEATURE_UNSPECIFIED = 0;
// Transcribe the audios into text.
AUDIO_TRANSCRIPTION = 1;
}
// Required. Name of the dataset to request labeling task, format:
// projects/{project_id}/datasets/{dataset_id}
string parent = 1;
// Required. Basic human annotation config.
HumanAnnotationConfig basic_config = 2;
// Required. The type of audio labeling task.
Feature feature = 3;
}
// Request message for GetExample
message GetExampleRequest {
// Required. Name of example, format:
@ -602,9 +683,9 @@ message ListExamplesRequest {
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by
// [ListExamplesResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListExamplesResponse.next_page_token] of the previous
// [DataLabelingService.ListExamples] call.
// Return first page if empty.
// [ListExamplesResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListExamplesResponse.next_page_token]
// of the previous [DataLabelingService.ListExamples] call. Return first page
// if empty.
string page_token = 4;
}
@ -651,9 +732,9 @@ message ListAnnotationSpecSetsRequest {
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by
// [ListAnnotationSpecSetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListAnnotationSpecSetsResponse.next_page_token] of the previous
// [DataLabelingService.ListAnnotationSpecSets] call.
// Return first page if empty.
// [ListAnnotationSpecSetsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListAnnotationSpecSetsResponse.next_page_token]
// of the previous [DataLabelingService.ListAnnotationSpecSets] call. Return
// first page if empty.
string page_token = 4;
}
@ -712,9 +793,9 @@ message ListInstructionsRequest {
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by
// [ListInstructionsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListInstructionsResponse.next_page_token] of the previous
// [DataLabelingService.ListInstructions] call.
// Return first page if empty.
// [ListInstructionsResponse.next_page_token][google.cloud.datalabeling.v1beta1.ListInstructionsResponse.next_page_token]
// of the previous [DataLabelingService.ListInstructions] call. Return first
// page if empty.
string page_token = 4;
}
@ -726,3 +807,159 @@ message ListInstructionsResponse {
// A token to retrieve next page of results.
string next_page_token = 2;
}
// Request message for GetEvaluation.
message GetEvaluationRequest {
// Required. Name of the evaluation. Format:
// 'projects/{project_id}/datasets/{dataset_id}/evaluations/{evaluation_id}'
string name = 1;
}
// Request message for SearchEvaluation.
message SearchEvaluationsRequest {
// Required. Evaluation search parent. Format:
// projects/{project_id}
string parent = 1;
// Optional. Support filtering by model id, job state, start and end time.
// Format:
// "evaluation_job.evaluation_job_id = {evaluation_job_id} AND
// evaluation_job.evaluation_job_run_time_start = {timestamp} AND
// evaluation_job.evaluation_job_run_time_end = {timestamp} AND
// annotation_spec.display_name = {display_name}"
string filter = 2;
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 3;
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by
// [SearchEvaluationsResponse.next_page_token][google.cloud.datalabeling.v1beta1.SearchEvaluationsResponse.next_page_token]
// of the previous [DataLabelingService.SearchEvaluations] call. Return first
// page if empty.
string page_token = 4;
}
// Results of searching evaluations.
message SearchEvaluationsResponse {
// The list of evaluations to return.
repeated Evaluation evaluations = 1;
// A token to retrieve next page of results.
string next_page_token = 2;
}
// Request message of SearchExampleComparisons.
message SearchExampleComparisonsRequest {
// Required. Name of the Evaluation resource to search example comparison
// from. Format:
// projects/{project_id}/datasets/{dataset_id}/evaluations/{evaluation_id}
string parent = 1;
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 2;
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by
// [SearchExampleComparisons.next_page_token][] of the previous
// [DataLabelingService.SearchExampleComparisons] call.
// Return first page if empty.
string page_token = 3;
}
// Results of searching example comparisons.
message SearchExampleComparisonsResponse {
// Example comparisons containing annotation comparison between groundtruth
// and predictions.
message ExampleComparison {
Example ground_truth_example = 1;
repeated Example model_created_examples = 2;
}
repeated ExampleComparison example_comparisons = 1;
// A token to retrieve next page of results.
string next_page_token = 2;
}
// Request message for CreateEvaluationJob.
message CreateEvaluationJobRequest {
// Required. Evaluation job resource parent, format:
// projects/{project_id}.
string parent = 1;
// Required. The evaluation job to create.
EvaluationJob job = 2;
}
// Request message for UpdateEvaluationJob.
message UpdateEvaluationJobRequest {
// Required. Evaluation job that is going to be updated.
EvaluationJob evaluation_job = 1;
// Optional. Mask for which field in evaluation_job should be updated.
google.protobuf.FieldMask update_mask = 2;
}
// Request message for GetEvaluationJob.
message GetEvaluationJobRequest {
// Required. Name of the evaluation job. Format:
// 'projects/{project_id}/evaluationJobs/{evaluation_job_id}'
string name = 1;
}
// Request message for PauseEvaluationJob.
message PauseEvaluationJobRequest {
// Required. Name of the evaluation job that is going to be paused. Format:
// 'projects/{project_id}/evaluationJobs/{evaluation_job_id}'
string name = 1;
}
// Request message ResumeEvaluationJob.
message ResumeEvaluationJobRequest {
// Required. Name of the evaluation job that is going to be resumed. Format:
// 'projects/{project_id}/evaluationJobs/{evaluation_job_id}'
string name = 1;
}
// Request message DeleteEvaluationJob.
message DeleteEvaluationJobRequest {
// Required. Name of the evaluation job that is going to be deleted. Format:
// 'projects/{project_id}/evaluationJobs/{evaluation_job_id}'
string name = 1;
}
// Request message for ListEvaluationJobs.
message ListEvaluationJobsRequest {
// Required. Evaluation resource parent. Format:
// "projects/{project_id}"
string parent = 1;
// Optional. Only support filter by model id and job state. Format:
// "evaluation_job.model_id = {model_id} AND evaluation_job.state =
// {EvaluationJob::State}"
string filter = 2;
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 3;
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by
// [ListEvaluationJobs.next_page_token][] of the previous
// [DataLabelingService.ListEvaluationJobs] call.
// Return first page if empty.
string page_token = 4;
}
// Results for listing evaluation jobs.
message ListEvaluationJobsResponse {
// The list of evaluation jobs to return.
repeated EvaluationJob evaluation_jobs = 1;
// A token to retrieve next page of results.
string next_page_token = 2;
}

View File

@ -0,0 +1,75 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.cloud.datalabeling.v1beta1;
import "google/api/annotations.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling";
option java_multiple_files = true;
option java_package = "com.google.cloud.datalabeling.v1beta1";
// Container of information about an image.
message ImagePayload {
// Image format.
string mime_type = 1;
// A byte string of a thumbnail image.
bytes image_thumbnail = 2;
// Image uri from the user bucket.
string image_uri = 3;
// Signed uri of the image file in the service bucket.
string signed_uri = 4;
}
// Container of information about a piece of text.
message TextPayload {
// Text content.
string text_content = 1;
}
// Container of information of a video thumbnail.
message VideoThumbnail {
// A byte string of the video frame.
bytes thumbnail = 1;
// Time offset relative to the beginning of the video, corresponding to the
// video frame where the thumbnail has been extracted from.
google.protobuf.Duration time_offset = 2;
}
// Container of information of a video.
message VideoPayload {
// Video format.
string mime_type = 1;
// Video uri from the user bucket.
string video_uri = 2;
// The list of video thumbnails.
repeated VideoThumbnail video_thumbnails = 3;
// FPS of the video.
float frame_rate = 4;
// Signed uri of the video file in the service bucket.
string signed_uri = 5;
}

View File

@ -16,7 +16,6 @@ language_settings:
package_name: Google\Cloud\Datalabeling\V1beta1
nodejs:
package_name: datalabeling.v1beta1
domain_layer_location: google-cloud
# The configuration for the license header to put on generated files.
license_header:
# The file containing the raw license header without any copyright line(s).
@ -50,7 +49,10 @@ interfaces:
entity_name: data_item
- name_pattern: projects/{project}/instructions/{instruction}
entity_name: instruction
# Definition for retryable codes.
- name_pattern: projects/{project}/datasets/{dataset}/evaluations/{evaluation}
entity_name: evaluation
- name_pattern: projects/{project}/evaluationJobs/{evaluation_job}
entity_name: evaluation_job
retry_codes_def:
- name: idempotent
retry_codes:
@ -359,29 +361,6 @@ interfaces:
max_poll_delay_millis: 5000
total_poll_timeout_millis: 300000
timeout_millis: 30000
- name: LabelAudio
flattening:
groups:
- parameters:
- parent
- basic_config
- feature
required_fields:
- parent
- basic_config
- feature
retry_codes_name: non_idempotent
retry_params_name: default
field_name_patterns:
parent: dataset
long_running:
return_type: google.cloud.datalabeling.v1beta1.AnnotatedDataset
metadata_type: google.cloud.datalabeling.v1beta1.LabelOperationMetadata
initial_poll_delay_millis: 500
poll_delay_multiplier: 1.5
max_poll_delay_millis: 5000
total_poll_timeout_millis: 300000
timeout_millis: 30000
- name: GetExample
flattening:
groups:
@ -538,3 +517,153 @@ interfaces:
field_name_patterns:
name: instruction
timeout_millis: 30000
- name: GetEvaluation
flattening:
groups:
- parameters:
- name
required_fields:
- name
retry_codes_name: idempotent
retry_params_name: default
field_name_patterns:
name: evaluation
timeout_millis: 60000
- name: SearchEvaluations
flattening:
groups:
- parameters:
- parent
- filter
required_fields:
- parent
- filter
page_streaming:
request:
page_size_field: page_size
token_field: page_token
response:
token_field: next_page_token
resources_field: evaluations
retry_codes_name: idempotent
retry_params_name: default
field_name_patterns:
parent: project
timeout_millis: 60000
- name: SearchExampleComparisons
flattening:
groups:
- parameters:
- parent
required_fields:
- parent
page_streaming:
request:
page_size_field: page_size
token_field: page_token
response:
token_field: next_page_token
resources_field: example_comparisons
retry_codes_name: non_idempotent
retry_params_name: default
field_name_patterns:
parent: evaluation
timeout_millis: 60000
- name: CreateEvaluationJob
flattening:
groups:
- parameters:
- parent
- job
required_fields:
- parent
- job
retry_codes_name: non_idempotent
retry_params_name: default
field_name_patterns:
parent: project
timeout_millis: 60000
- name: UpdateEvaluationJob
flattening:
groups:
- parameters:
- evaluation_job
- update_mask
required_fields:
- evaluation_job
- update_mask
retry_codes_name: non_idempotent
retry_params_name: default
field_name_patterns:
evaluation_job.name: evaluation_job
timeout_millis: 60000
- name: GetEvaluationJob
flattening:
groups:
- parameters:
- name
required_fields:
- name
retry_codes_name: idempotent
retry_params_name: default
field_name_patterns:
name: evaluation_job
timeout_millis: 60000
- name: PauseEvaluationJob
# params.
flattening:
groups:
- parameters:
- name
required_fields:
- name
retry_codes_name: non_idempotent
retry_params_name: default
field_name_patterns:
name: evaluation_job
timeout_millis: 60000
- name: ResumeEvaluationJob
flattening:
groups:
- parameters:
- name
required_fields:
- name
retry_codes_name: non_idempotent
retry_params_name: default
field_name_patterns:
name: evaluation_job
timeout_millis: 60000
- name: DeleteEvaluationJob
flattening:
groups:
- parameters:
- name
required_fields:
- name
retry_codes_name: idempotent
retry_params_name: default
field_name_patterns:
name: evaluation_job
timeout_millis: 60000
- name: ListEvaluationJobs
flattening:
groups:
- parameters:
- parent
- filter
required_fields:
- parent
- filter
page_streaming:
request:
page_size_field: page_size
token_field: page_token
response:
token_field: next_page_token
resources_field: evaluation_jobs
retry_codes_name: idempotent
retry_params_name: default
field_name_patterns:
parent: project
timeout_millis: 60000

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -17,18 +17,16 @@ syntax = "proto3";
package google.cloud.datalabeling.v1beta1;
import "google/cloud/datalabeling/v1beta1/annotation.proto";
import "google/cloud/datalabeling/v1beta1/human_annotation_config.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
import "google/cloud/datalabeling/v1beta1/annotation.proto";
import "google/cloud/datalabeling/v1beta1/data_payloads.proto";
import "google/cloud/datalabeling/v1beta1/human_annotation_config.proto";
import "google/protobuf/timestamp.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling";
option java_multiple_files = true;
option java_package = "com.google.cloud.datalabeling.v1beta1";
enum DataType {
DATA_TYPE_UNSPECIFIED = 0;
@ -38,14 +36,13 @@ enum DataType {
TEXT = 4;
AUDIO = 5;
GENERAL_DATA = 6;
}
// Dataset is the resource to hold your data. You can request multiple labeling
// tasks for a dataset while each one will generate an AnnotatedDataset.
message Dataset {
// Output only.
// Dataset resource name, format is:
// Output only. Dataset resource name, format is:
// projects/{project_id}/datasets/{dataset_id}
string name = 1;
@ -63,39 +60,86 @@ message Dataset {
// where ImportData is called. It is available only after the clients
// import data to this dataset.
repeated InputConfig input_configs = 5;
// Output only. The names of any related resources that are blocking changes
// to the dataset.
repeated string blocking_resources = 6;
// Output only. The number of data items in the dataset.
int64 data_item_count = 7;
}
// The configuration of input data, including data type, location, etc.
message InputConfig {
// Optional. The metadata associated with each data type.
oneof data_type_metadata {
// Required for text import, as language code must be specified.
TextMetadata text_metadata = 6;
}
// Required. Where the data is from.
oneof source {
// Source located in Cloud Storage.
GcsSource gcs_source = 2;
BigQuerySource bigquery_source = 5;
}
// Required. Data type must be specifed when user tries to import data.
DataType data_type = 1;
// Optional. If input contains annotation, user needs to specify the
// type and metadata of the annotation when creating it as an annotated
// dataset.
AnnotationType annotation_type = 3;
// Optional. Metadata about annotations in the input. Each annotation type may
// have different metadata.
// Metadata for classification problem.
ClassificationMetadata classification_metadata = 4;
}
// Source of the GCS file to be imported. Only gcs path is allowed in
// input_uri.
// Metadata for the text.
message TextMetadata {
// The language of this text, as a
// [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
// Default value is en-US.
string language_code = 1;
}
// Metadata for classification annotations.
message ClassificationMetadata {
// Whether the classification task is multi-label or not.
bool is_multi_label = 1;
}
// Source of the Cloud Storage file to be imported.
message GcsSource {
// Required. The input uri of source file.
// Required. The input URI of source file. This must be a Cloud Storage path
// (`gs://...`).
string input_uri = 1;
// Required. The format of the gcs source. Only "text/csv" is supported.
// Required. The format of the source file. Only "text/csv" is supported.
string mime_type = 2;
}
// The BigQuery location for the input content.
message BigQuerySource {
// Required. BigQuery URI to a table, up to 2000 characters long.
// Accepted forms: BigQuery gs path e.g. bq://projectId.bqDatasetId.bqTableId
string input_uri = 1;
}
// The configuration of output data.
message OutputConfig {
// Required. Location to output data to.
oneof destination {
// Output to a GCS file. Should be used for labeling output other than Audio
// transcription.
// Output to a file in Cloud Storage. Should be used for labeling output
// other thanimage segmentation.
GcsDestination gcs_destination = 1;
// Output to a GCS folder. Should be used for Audio transcription
// labeling output.
// Output to a folder in Cloud Storage. Should be used for image
// segmentation labeling output.
GcsFolderDestination gcs_folder_destination = 2;
}
}
@ -114,7 +158,7 @@ message GcsDestination {
// Export folder destination of the data.
message GcsFolderDestination {
// Required. GCS folder to export data to.
// Required. Cloud Storage directory to export data to.
string output_folder_uri = 1;
}
@ -130,9 +174,6 @@ message DataItem {
// The video payload, a container of the video uri.
VideoPayload video_payload = 4;
// The audio payload, a container of the audio uri.
AudioPayload audio_payload = 5;
}
// Output only. Name of the data item, in format of:
@ -144,8 +185,7 @@ message DataItem {
// labeling task will generate an AnnotatedDataset under the Dataset that the
// task is requested for.
message AnnotatedDataset {
// Output only.
// AnnotatedDataset resource name in format of:
// Output only. AnnotatedDataset resource name in format of:
// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/
// {annotated_dataset_id}
string name = 1;
@ -182,46 +222,62 @@ message AnnotatedDataset {
// Output only. Additional information about AnnotatedDataset.
AnnotatedDatasetMetadata metadata = 10;
}
// Metadata on AnnotatedDataset.
message AnnotatedDatasetMetadata {
// HumanAnnotationConfig used when requesting the human labeling task for this
// AnnotatedDataset.
HumanAnnotationConfig human_annotation_config = 1;
// Specific request configuration used when requesting the labeling task.
oneof annotation_request_config {
// Configuration for image classification task.
ImageClassificationConfig image_classification_config = 2;
// Configuration for image bounding box and bounding poly task.
BoundingPolyConfig bounding_poly_config = 3;
// Configuration for image polyline task.
PolylineConfig polyline_config = 4;
// Configuration for image segmentation task.
SegmentationConfig segmentation_config = 5;
// Configuration for video classification task.
VideoClassificationConfig video_classification_config = 6;
// Configuration for video object detection task.
ObjectDetectionConfig object_detection_config = 7;
// Configuration for video object tracking task.
ObjectTrackingConfig object_tracking_config = 8;
// Configuration for video event labeling task.
EventConfig event_config = 9;
// Configuration for text classification task.
TextClassificationConfig text_classification_config = 10;
// Configuration for text entity extraction task.
TextEntityExtractionConfig text_entity_extraction_config = 11;
}
// Output only. The names of any related resources that are blocking changes
// to the annotated dataset.
repeated string blocking_resources = 11;
}
// Statistics about annotation specs.
message LabelStats {
// Map of each annotation spec'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.
map<string, int64> example_count = 1;
}
// Metadata on AnnotatedDataset.
message AnnotatedDatasetMetadata {
// Specific request configuration used when requesting the labeling task.
oneof annotation_request_config {
// Configuration for image classification task.
ImageClassificationConfig image_classification_config = 2;
// Configuration for image bounding box and bounding poly task.
BoundingPolyConfig bounding_poly_config = 3;
// Configuration for image polyline task.
PolylineConfig polyline_config = 4;
// Configuration for image segmentation task.
SegmentationConfig segmentation_config = 5;
// Configuration for video classification task.
VideoClassificationConfig video_classification_config = 6;
// Configuration for video object detection task.
ObjectDetectionConfig object_detection_config = 7;
// Configuration for video object tracking task.
ObjectTrackingConfig object_tracking_config = 8;
// Configuration for video event labeling task.
EventConfig event_config = 9;
// Configuration for text classification task.
TextClassificationConfig text_classification_config = 10;
// Configuration for text entity extraction task.
TextEntityExtractionConfig text_entity_extraction_config = 11;
}
// HumanAnnotationConfig used when requesting the human labeling task for this
// AnnotatedDataset.
HumanAnnotationConfig human_annotation_config = 1;
}
// An Example is a piece of data and its annotation. For example, an image with
// label "house".
message Example {
@ -235,9 +291,6 @@ message Example {
// The video payload, a container of the video uri.
VideoPayload video_payload = 7;
// The audio payload, a container of the audio uri.
AudioPayload audio_payload = 8;
}
// Output only. Name of the example, in format of:
@ -249,58 +302,3 @@ message Example {
// One piece of data can have multiple annotations.
repeated Annotation annotations = 5;
}
// Container of information about an image.
message ImagePayload {
// Image format.
string mime_type = 1;
// A byte string of a full image.
bytes image_thumbnail = 2;
// Image uri from the user bucket.
string image_uri = 3;
}
// Container of information about a piece of text.
message TextPayload {
// Text content.
string text_content = 1;
}
// Container of information of a video thumbnail.
message VideoThumbnail {
// A byte string of the video frame.
bytes thumbnail = 1;
// Time offset relative to the beginning of the video, corresponding to the
// video frame where the thumbnail has been extracted from.
google.protobuf.Duration time_offset = 2;
}
// Container of information of a video.
message VideoPayload {
// Video format.
string mime_type = 1;
// Video uri from the user bucket.
string video_uri = 2;
// The list of video thumbnails.
repeated VideoThumbnail video_thumbnails = 3;
// FPS of the video.
float frame_rate = 4;
}
// Container of information of an audio.
message AudioPayload {
// Audio uri in user bucket.
string audio_uri = 1;
// Sample rate in Hertz of the audio data sent in all
// `RecognitionAudio` messages. This field is optional for `FLAC` and `WAV`
// audio files and required for all other audio formats. For details,
// see [AudioEncoding][google.cloud.datalabeling.v1beta1.AudioPayload.AudioEncoding].
int32 sample_rate_hertz = 3;
}

View File

@ -0,0 +1,167 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.cloud.datalabeling.v1beta1;
import "google/api/annotations.proto";
import "google/cloud/datalabeling/v1beta1/annotation.proto";
import "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto";
import "google/protobuf/timestamp.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling";
option java_multiple_files = true;
option java_package = "com.google.cloud.datalabeling.v1beta1";
// Describes an evaluation between 2 annotated datasets. Created by an
// evaluation plan.
message Evaluation {
// Resource name of an evaluation.
// Format:
// 'projects/{project_id}/datasets/{dataset_id}/evaluations/{evaluation_id}'
string name = 1;
// Options used in evaluation plan for creating the evaluation.
EvaluationConfig config = 2;
// Output only. Timestamp when the evaluation plan triggered this evaluation
// flow.
google.protobuf.Timestamp evaluation_job_run_time = 3;
// Output only. Timestamp when this model evaluation was created.
google.protobuf.Timestamp create_time = 4;
// Output only. Metrics of the evaluation.
EvaluationMetrics evaluation_metrics = 5;
// Type of the annotation to compute metrics for in the groundtruth and
// annotation labeled dataset. Required for creation.
AnnotationType annotation_type = 6;
// Output only. Count of items in groundtruth dataset included in this
// evaluation. Will be unset if annotation type is not applicable.
int64 evaluated_item_count = 7;
}
message EvaluationConfig {
// Vertical specific options for general metrics.
oneof vertical_option {
BoundingBoxEvaluationOptions bounding_box_evaluation_options = 1;
}
}
// Options regarding evaluation between bounding boxes.
message BoundingBoxEvaluationOptions {
// Minimize IoU required to consider 2 bounding boxes are matched.
float iou_threshold = 1;
}
message EvaluationMetrics {
// Common metrics covering most genernal cases.
oneof metrics {
ClassificationMetrics classification_metrics = 1;
ObjectDetectionMetrics object_detection_metrics = 2;
}
}
message ClassificationMetrics {
// Precision-recall curve.
PrCurve pr_curve = 1;
ConfusionMatrix confusion_matrix = 2;
}
message ObjectDetectionMetrics {
// Precision-recall curve.
PrCurve pr_curve = 1;
}
message PrCurve {
message ConfidenceMetricsEntry {
// Threshold used for this entry, for example, IoU threshold for bounding
// box problem, or detection threshold for classification.
float confidence_threshold = 1;
// Recall value.
float recall = 2;
// Precision value.
float precision = 3;
// Harmonic mean of recall and precision.
float f1_score = 4;
// Recall value for entries with label that has highest score.
float recall_at1 = 5;
// Precision value for entries with label that has highest score.
float precision_at1 = 6;
// The harmonic mean of
// [recall_at1][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.recall_at1]
// and
// [precision_at1][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.precision_at1].
float f1_score_at1 = 7;
// Recall value for entries with label that has highest 5 scores.
float recall_at5 = 8;
// Precision value for entries with label that has highest 5 scores.
float precision_at5 = 9;
// The harmonic mean of
// [recall_at5][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.recall_at5]
// and
// [precision_at5][google.cloud.datalabeling.v1beta1.PrCurve.ConfidenceMetricsEntry.precision_at5].
float f1_score_at5 = 10;
}
// PR curve against which annotation spec. Could be empty.
AnnotationSpec annotation_spec = 1;
// Area under precision recall curve.
float area_under_curve = 2;
// entries to draw PR graph.
repeated ConfidenceMetricsEntry confidence_metrics_entries = 3;
// mean average prcision of this curve.
float mean_average_precision = 4;
}
// Confusion matrix of the model running the classification. Not applicable
// when label filtering is specified in evaluation option.
message ConfusionMatrix {
message ConfusionMatrixEntry {
// The predicted annotation spec.
AnnotationSpec annotation_spec = 1;
// Number of items being predicted as this label.
int32 item_count = 2;
}
// A row in the confusion matrix.
message Row {
// the original annotation spec of this row.
AnnotationSpec annotation_spec = 1;
// Info describing predicted label distribution.
repeated ConfusionMatrixEntry entries = 2;
}
repeated Row row = 1;
}

View File

@ -0,0 +1,151 @@
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package google.cloud.datalabeling.v1beta1;
import "google/api/annotations.proto";
import "google/cloud/datalabeling/v1beta1/dataset.proto";
import "google/cloud/datalabeling/v1beta1/evaluation.proto";
import "google/cloud/datalabeling/v1beta1/human_annotation_config.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling";
option java_multiple_files = true;
option java_package = "com.google.cloud.datalabeling.v1beta1";
// Defines an evaluation job that is triggered periodically to generate
// evaluations.
message EvaluationJob {
// State of the job.
enum State {
STATE_UNSPECIFIED = 0;
SCHEDULED = 1;
RUNNING = 2;
PAUSED = 3;
STOPPED = 4;
}
// Format: 'projects/{project_id}/evaluationJobs/{evaluation_job_id}'
string name = 1;
// Description of the job. The description can be up to
// 25000 characters long.
string description = 2;
State state = 3;
// Describes the schedule on which the job will be executed. Minimum schedule
// unit is 1 day.
//
// The schedule can be either of the following types:
// * [Crontab](http://en.wikipedia.org/wiki/Cron#Overview)
// * English-like
//
// [schedule](https:
// //cloud.google.com/scheduler/docs/configuring/cron-job-schedules)
string schedule = 4;
// The versioned model that is being evaluated here.
// Only one job is allowed for each model name.
// Format: 'projects/*/models/*/versions/*'
string model_version = 5;
// Detailed config for running this eval job.
EvaluationJobConfig evaluation_job_config = 6;
// Name of the AnnotationSpecSet.
string annotation_spec_set = 7;
// If a human annotation should be requested when some data don't have ground
// truth.
bool label_missing_ground_truth = 8;
// Output only. Any attempts with errors happening in evaluation job runs each
// time will be recorded here incrementally.
repeated Attempt attempts = 9;
// Timestamp when this evaluation job was created.
google.protobuf.Timestamp create_time = 10;
}
message EvaluationJobConfig {
// config specific to different supported human annotation use cases.
oneof human_annotation_request_config {
ImageClassificationConfig image_classification_config = 4;
BoundingPolyConfig bounding_poly_config = 5;
VideoClassificationConfig video_classification_config = 6;
ObjectDetectionConfig object_detection_config = 7;
TextClassificationConfig text_classification_config = 8;
ObjectTrackingConfig object_tracking_config = 12;
}
// Input config for data, gcs_source in the config will be the root path for
// data. Data should be organzied chronically under that path.
InputConfig input_config = 1;
// Config used to create evaluation.
EvaluationConfig evaluation_config = 2;
HumanAnnotationConfig human_annotation_config = 3;
// Mappings between reserved keys for bigquery import and customized tensor
// names. Key is the reserved key, value is tensor name in the bigquery table.
// Different annotation type has different required key mapping. See user
// manual for more details:
//
// https:
// //docs.google.com/document/d/1bg1meMIBGY
// // 9I5QEoFoHSX6u9LsZQYBSmPt6E9SxqHZc/edit#heading=h.tfyjhxhvsqem
map<string, string> bigquery_import_keys = 9;
// Max number of examples to collect in each period.
int32 example_count = 10;
// Percentage of examples to collect in each period. 0.1 means 10% of total
// examples will be collected, and 0.0 means no collection.
double example_sample_percentage = 11;
// Alert config for the evaluation job. The alert will be triggered when its
// criteria is met.
EvaluationJobAlertConfig evaluation_job_alert_config = 13;
}
message EvaluationJobAlertConfig {
// Required. Email of the user who will be receiving the alert.
string email = 1;
// If a single evaluation run's aggregate mean average precision is
// lower than this threshold, the alert will be triggered.
double min_acceptable_mean_average_precision = 2;
}
// Records a failed attempt.
message Attempt {
google.protobuf.Timestamp attempt_time = 1;
repeated google.rpc.Status partial_failures = 2;
}

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -17,14 +17,13 @@ syntax = "proto3";
package google.cloud.datalabeling.v1beta1;
import "google/protobuf/duration.proto";
import "google/api/annotations.proto";
import "google/protobuf/duration.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling";
option java_multiple_files = true;
option java_package = "com.google.cloud.datalabeling.v1beta1";
enum StringAggregationType {
STRING_AGGREGATION_TYPE_UNSPECIFIED = 0;
@ -79,6 +78,10 @@ message HumanAnnotationConfig {
// emails must be registered in crowdcompute worker UI:
// https://crowd-compute.appspot.com/
repeated string contributor_emails = 9;
// Email of the user who started the labeling task and should be notified by
// email. If empty no notification will be sent.
string user_email_address = 10;
}
// Config for image classification human labeling task.
@ -159,9 +162,6 @@ message ObjectDetectionConfig {
// Required. Annotation spec set resource name.
string annotation_spec_set = 1;
// Optional. Instruction message showed on labelers UI.
string instruction_message = 2;
// Required. Number of frames per second to be extracted from the video.
double extraction_frame_rate = 3;
}

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -17,15 +17,14 @@ syntax = "proto3";
package google.cloud.datalabeling.v1beta1;
import "google/api/annotations.proto";
import "google/cloud/datalabeling/v1beta1/dataset.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling";
option java_multiple_files = true;
option java_package = "com.google.cloud.datalabeling.v1beta1";
// Instruction of how to perform the labeling task for human operators.
// Currently two types of instruction are supported - CSV file and PDF.
// One of the two types instruction must be provided.
@ -53,16 +52,22 @@ message Instruction {
// Required. The data type of this instruction.
DataType data_type = 6;
// One of CSV and PDF instruction is required.
// Instruction from a csv file, such as for classification task.
// Csv file should have exact two columns, in the format of:
// The first column is labeled data, such as image reference, text.
// The second column is comma separated labels associated with data.
// One of CSV or PDF instruction is required.
// Instruction from a CSV file, such as for classification task.
// The CSV file should have exact two columns, in the following format:
//
// * The first column is labeled data, such as an image reference, text.
// * The second column is comma separated labels associated with data.
CsvInstruction csv_instruction = 7;
// One of CSV and PDF instruction is required.
// Instruction from a PDF doc. The PDF doc should be in GCS bucket.
// One of CSV or PDF instruction is required.
// Instruction from a PDF document. The PDF should be in a Cloud Storage
// bucket.
PdfInstruction pdf_instruction = 9;
// Output only. The names of any related resources that are blocking changes
// to the instruction.
repeated string blocking_resources = 10;
}
// Instruction from a CSV file.

View File

@ -1,4 +1,4 @@
// Copyright 2018 Google LLC.
// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -17,12 +17,11 @@ syntax = "proto3";
package google.cloud.datalabeling.v1beta1;
import "google/api/annotations.proto";
import "google/cloud/datalabeling/v1beta1/dataset.proto";
import "google/cloud/datalabeling/v1beta1/human_annotation_config.proto";
import "google/cloud/datalabeling/v1beta1/instruction.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1;datalabeling";
option java_multiple_files = true;
@ -69,6 +68,9 @@ message ImportDataOperationMetadata {
// E.g. single files that couldn't be read.
// Status details field will contain standard GCP error details.
repeated google.rpc.Status partial_failures = 2;
// Output only. Timestamp when import dataset request was created.
google.protobuf.Timestamp create_time = 3;
}
// Metadata of an ExportData operation.
@ -81,13 +83,57 @@ message ExportDataOperationMetadata {
// E.g. single files that couldn't be read.
// Status details field will contain standard GCP error details.
repeated google.rpc.Status partial_failures = 2;
// Output only. Timestamp when export dataset request was created.
google.protobuf.Timestamp create_time = 3;
}
// Metadata of a labeling operation, such as LabelImage or LabelVideo.
// Next tag: 16
// Next tag: 18
message LabelOperationMetadata {
// Ouptut only. Details of specific label operation.
oneof details {
// Details of label image classification operation.
LabelImageClassificationOperationMetadata image_classification_details = 3;
// Details of label image bounding box operation.
LabelImageBoundingBoxOperationMetadata image_bounding_box_details = 4;
// Details of label image bounding poly operation.
LabelImageBoundingPolyOperationMetadata image_bounding_poly_details = 11;
// Details of label image oriented bounding box operation.
LabelImageOrientedBoundingBoxOperationMetadata
image_oriented_bounding_box_details = 14;
// Details of label image polyline operation.
LabelImagePolylineOperationMetadata image_polyline_details = 12;
// Details of label image segmentation operation.
LabelImageSegmentationOperationMetadata image_segmentation_details = 15;
// Details of label video classification operation.
LabelVideoClassificationOperationMetadata video_classification_details = 5;
// Details of label video object detection operation.
LabelVideoObjectDetectionOperationMetadata video_object_detection_details =
6;
// Details of label video object tracking operation.
LabelVideoObjectTrackingOperationMetadata video_object_tracking_details = 7;
// Details of label video event operation.
LabelVideoEventOperationMetadata video_event_details = 8;
// Details of label text classification operation.
LabelTextClassificationOperationMetadata text_classification_details = 9;
// Details of label text entity extraction operation.
LabelTextEntityExtractionOperationMetadata text_entity_extraction_details =
13;
}
// Output only. Progress of label operation. Range: [0, 100].
// Currently not supported.
int32 progress_percent = 1;
// Output only. Partial failures encountered.
@ -95,25 +141,8 @@ message LabelOperationMetadata {
// Status details field will contain standard GCP error details.
repeated google.rpc.Status partial_failures = 2;
// Ouptut only. Details of specific label operation.
oneof details {
LabelImageClassificationOperationMetadata image_classification_details = 3;
LabelImageBoundingBoxOperationMetadata image_bounding_box_details = 4;
LabelImageBoundingPolyOperationMetadata image_bounding_poly_details = 11;
LabelImageOrientedBoundingBoxOperationMetadata
image_oriented_bounding_box_details = 14;
LabelImagePolylineOperationMetadata image_polyline_details = 12;
LabelImageSegmentationOperationMetadata image_segmentation_details = 15;
LabelVideoClassificationOperationMetadata video_classification_details = 5;
LabelVideoObjectDetectionOperationMetadata video_object_detection_details =
6;
LabelVideoObjectTrackingOperationMetadata video_object_tracking_details = 7;
LabelVideoEventOperationMetadata video_event_details = 8;
LabelTextClassificationOperationMetadata text_classification_details = 9;
LabelAudioTranscriptionOperationMetadata audio_transcription_details = 10;
LabelTextEntityExtractionOperationMetadata text_entity_extraction_details =
13;
}
// Output only. Timestamp when labeling request was created.
google.protobuf.Timestamp create_time = 16;
}
// Metadata of a LabelImageClassification operation.
@ -182,11 +211,6 @@ message LabelTextClassificationOperationMetadata {
HumanAnnotationConfig basic_config = 1;
}
message LabelAudioTranscriptionOperationMetadata {
// Basic human annotation config used in labeling request.
HumanAnnotationConfig basic_config = 1;
}
// Details of a LabelTextEntityExtraction operation metadata.
message LabelTextEntityExtractionOperationMetadata {
// Basic human annotation config used in labeling request.
@ -195,12 +219,15 @@ message LabelTextEntityExtractionOperationMetadata {
// Metadata of a CreateInstruction operation.
message CreateInstructionMetadata {
// Output only. The name of the created Instruction.
// The name of the created Instruction.
// projects/{project_id}/instructions/{instruction_id}
string instruction = 1;
// Output only. Partial failures encountered.
// Partial failures encountered.
// E.g. single files that couldn't be read.
// Status details field will contain standard GCP error details.
repeated google.rpc.Status partial_failures = 2;
// Timestamp when create instruction request was created.
google.protobuf.Timestamp create_time = 3;
}