// 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/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.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/longrunning/operations.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
option csharp_namespace = "Google.Cloud.DataLabeling.V1Beta1";
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";
option php_namespace = "Google\\Cloud\\DataLabeling\\V1beta1";
option ruby_package = "Google::Cloud::DataLabeling::V1beta1";
// Service for the AI Platform Data Labeling API.
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) = {
post: "/v1beta1/{parent=projects/*}/datasets"
body: "*"
};
option (google.api.method_signature) = "parent,dataset";
}
// Gets dataset by resource name.
rpc GetDataset(GetDatasetRequest) returns (Dataset) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/datasets/*}"
};
option (google.api.method_signature) = "name";
}
// Lists datasets under a project. Pagination is supported.
rpc ListDatasets(ListDatasetsRequest) returns (ListDatasetsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*}/datasets"
};
option (google.api.method_signature) = "parent,filter";
}
// Deletes a dataset by resource name.
rpc DeleteDataset(DeleteDatasetRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/datasets/*}"
};
option (google.api.method_signature) = "name";
}
// Imports data into dataset based on source locations defined in request.
// It can be called multiple times for the same dataset. Each dataset can
// only have one long running operation running on it. For example, no
// labeling task (also long running operation) can be started while
// importing is still ongoing. Vice versa.
rpc ImportData(ImportDataRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/datasets/*}:importData"
body: "*"
};
option (google.api.method_signature) = "name,input_config";
option (google.longrunning.operation_info) = {
response_type: "ImportDataOperationResponse"
metadata_type: "ImportDataOperationMetadata"
};
}
// Exports data and annotations from dataset.
rpc ExportData(ExportDataRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/datasets/*}:exportData"
body: "*"
};
option (google.api.method_signature) = "name,annotated_dataset,filter,output_config";
option (google.longrunning.operation_info) = {
response_type: "ExportDataOperationResponse"
metadata_type: "ExportDataOperationMetadata"
};
}
// Gets a data item in a dataset by resource name. This API can be
// called after data are imported into dataset.
rpc GetDataItem(GetDataItemRequest) returns (DataItem) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/datasets/*/dataItems/*}"
};
option (google.api.method_signature) = "name";
}
// Lists data items in a dataset. This API can be called after data
// are imported into dataset. Pagination is supported.
rpc ListDataItems(ListDataItemsRequest) returns (ListDataItemsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/datasets/*}/dataItems"
};
option (google.api.method_signature) = "parent,filter";
}
// Gets an annotated dataset by resource name.
rpc GetAnnotatedDataset(GetAnnotatedDatasetRequest) returns (AnnotatedDataset) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}"
};
option (google.api.method_signature) = "name";
}
// Lists annotated datasets for a dataset. Pagination is supported.
rpc ListAnnotatedDatasets(ListAnnotatedDatasetsRequest) returns (ListAnnotatedDatasetsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/datasets/*}/annotatedDatasets"
};
option (google.api.method_signature) = "parent,filter";
}
// Deletes an annotated dataset by resource name.
rpc DeleteAnnotatedDataset(DeleteAnnotatedDatasetRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*}"
};
}
// Starts a labeling task for image. The type of image labeling task is
// configured by feature in the request.
rpc LabelImage(LabelImageRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/datasets/*}/image:label"
body: "*"
};
option (google.api.method_signature) = "parent,basic_config,feature";
option (google.longrunning.operation_info) = {
response_type: "AnnotatedDataset"
metadata_type: "LabelOperationMetadata"
};
}
// Starts a labeling task for video. The type of video labeling task is
// configured by feature in the request.
rpc LabelVideo(LabelVideoRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/datasets/*}/video:label"
body: "*"
};
option (google.api.method_signature) = "parent,basic_config,feature";
option (google.longrunning.operation_info) = {
response_type: "AnnotatedDataset"
metadata_type: "LabelOperationMetadata"
};
}
// Starts a labeling task for text. The type of text labeling task is
// configured by feature in the request.
rpc LabelText(LabelTextRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/datasets/*}/text:label"
body: "*"
};
option (google.api.method_signature) = "parent,basic_config,feature";
option (google.longrunning.operation_info) = {
response_type: "AnnotatedDataset"
metadata_type: "LabelOperationMetadata"
};
}
// Gets an example by resource name, including both data and annotation.
rpc GetExample(GetExampleRequest) returns (Example) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/datasets/*/annotatedDatasets/*/examples/*}"
};
option (google.api.method_signature) = "name,filter";
}
// Lists examples in an annotated dataset. Pagination is supported.
rpc ListExamples(ListExamplesRequest) returns (ListExamplesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/datasets/*/annotatedDatasets/*}/examples"
};
option (google.api.method_signature) = "parent,filter";
}
// Creates an annotation spec set by providing a set of labels.
rpc CreateAnnotationSpecSet(CreateAnnotationSpecSetRequest) returns (AnnotationSpecSet) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*}/annotationSpecSets"
body: "*"
};
option (google.api.method_signature) = "parent,annotation_spec_set";
}
// Gets an annotation spec set by resource name.
rpc GetAnnotationSpecSet(GetAnnotationSpecSetRequest) returns (AnnotationSpecSet) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/annotationSpecSets/*}"
};
option (google.api.method_signature) = "name";
}
// Lists annotation spec sets for a project. Pagination is supported.
rpc ListAnnotationSpecSets(ListAnnotationSpecSetsRequest) returns (ListAnnotationSpecSetsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*}/annotationSpecSets"
};
option (google.api.method_signature) = "parent,filter";
}
// Deletes an annotation spec set by resource name.
rpc DeleteAnnotationSpecSet(DeleteAnnotationSpecSetRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/annotationSpecSets/*}"
};
option (google.api.method_signature) = "name";
}
// Creates an instruction for how data should be labeled.
rpc CreateInstruction(CreateInstructionRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*}/instructions"
body: "*"
};
option (google.api.method_signature) = "parent,instruction";
option (google.longrunning.operation_info) = {
response_type: "Instruction"
metadata_type: "CreateInstructionMetadata"
};
}
// Gets an instruction by resource name.
rpc GetInstruction(GetInstructionRequest) returns (Instruction) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/instructions/*}"
};
option (google.api.method_signature) = "name";
}
// Lists instructions for a project. Pagination is supported.
rpc ListInstructions(ListInstructionsRequest) returns (ListInstructionsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*}/instructions"
};
option (google.api.method_signature) = "parent,filter";
}
// Deletes an instruction object by resource name.
rpc DeleteInstruction(DeleteInstructionRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/instructions/*}"
};
option (google.api.method_signature) = "name";
}
// Gets an evaluation by resource name (to search, use
// [projects.evaluations.search][google.cloud.datalabeling.v1beta1.DataLabelingService.SearchEvaluations]).
rpc GetEvaluation(GetEvaluationRequest) returns (Evaluation) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/datasets/*/evaluations/*}"
};
option (google.api.method_signature) = "name";
}
// Searches [evaluations][google.cloud.datalabeling.v1beta1.Evaluation] within a project.
rpc SearchEvaluations(SearchEvaluationsRequest) returns (SearchEvaluationsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*}/evaluations:search"
};
option (google.api.method_signature) = "parent,filter";
}
// Searches example comparisons from an evaluation. The return format is a
// list of example comparisons that show ground truth and prediction(s) for
// a single input. Search by providing an evaluation ID.
rpc SearchExampleComparisons(SearchExampleComparisonsRequest) returns (SearchExampleComparisonsResponse) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/datasets/*/evaluations/*}/exampleComparisons:search"
body: "*"
};
option (google.api.method_signature) = "parent";
}
// Creates an evaluation job.
rpc CreateEvaluationJob(CreateEvaluationJobRequest) returns (EvaluationJob) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*}/evaluationJobs"
body: "*"
};
option (google.api.method_signature) = "parent,job";
}
// Updates an evaluation job. You can only update certain fields of the job's
// [EvaluationJobConfig][google.cloud.datalabeling.v1beta1.EvaluationJobConfig]: `humanAnnotationConfig.instruction`,
// `exampleCount`, and `exampleSamplePercentage`.
//
// If you want to change any other aspect of the evaluation job, you must
// delete the job and create a new one.
rpc UpdateEvaluationJob(UpdateEvaluationJobRequest) returns (EvaluationJob) {
option (google.api.http) = {
patch: "/v1beta1/{evaluation_job.name=projects/*/evaluationJobs/*}"
body: "evaluation_job"
};
option (google.api.method_signature) = "evaluation_job,update_mask";
}
// Gets an evaluation job by resource name.
rpc GetEvaluationJob(GetEvaluationJobRequest) returns (EvaluationJob) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/evaluationJobs/*}"
};
option (google.api.method_signature) = "name";
}
// Pauses an evaluation job. Pausing an evaluation job that is already in a
// `PAUSED` state is a no-op.
rpc PauseEvaluationJob(PauseEvaluationJobRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/evaluationJobs/*}:pause"
body: "*"
};
option (google.api.method_signature) = "name";
}
// Resumes a paused evaluation job. A deleted evaluation job can't be resumed.
// Resuming a running or scheduled evaluation job is a no-op.
rpc ResumeEvaluationJob(ResumeEvaluationJobRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/evaluationJobs/*}:resume"
body: "*"
};
option (google.api.method_signature) = "name";
}
// Stops and deletes an evaluation job.
rpc DeleteEvaluationJob(DeleteEvaluationJobRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/evaluationJobs/*}"
};
option (google.api.method_signature) = "name";
}
// 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"
};
option (google.api.method_signature) = "parent,filter";
}
}
// Request message for CreateDataset.
message CreateDatasetRequest {
// Required. Dataset resource parent, format:
// projects/{project_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudresourcemanager.googleapis.com/Project"
}
];
// Required. The dataset to be created.
Dataset dataset = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for GetDataSet.
message GetDatasetRequest {
// Required. Dataset resource name, format:
// projects/{project_id}/datasets/{dataset_id}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Dataset"
}
];
}
// Request message for ListDataset.
message ListDatasetsRequest {
// Required. Dataset resource parent, format:
// projects/{project_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudresourcemanager.googleapis.com/Project"
}
];
// Optional. Filter on dataset is not supported at this moment.
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
// 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.
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Results of listing datasets within a project.
message ListDatasetsResponse {
// The list of datasets to return.
repeated Dataset datasets = 1;
// A token to retrieve next page of results.
string next_page_token = 2;
}
// Request message for DeleteDataset.
message DeleteDatasetRequest {
// Required. Dataset resource name, format:
// projects/{project_id}/datasets/{dataset_id}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Dataset"
}
];
}
// Request message for ImportData API.
message ImportDataRequest {
// Required. Dataset resource name, format:
// projects/{project_id}/datasets/{dataset_id}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Dataset"
}
];
// Required. Specify the input source of the data.
InputConfig input_config = 2 [(google.api.field_behavior) = REQUIRED];
// 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.
message ExportDataRequest {
// Required. Dataset resource name, format:
// projects/{project_id}/datasets/{dataset_id}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Dataset"
}
];
// Required. Annotated dataset resource name. DataItem in
// Dataset and their annotations in specified annotated dataset will be
// exported. It's in format of
// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/
// {annotated_dataset_id}
string annotated_dataset = 2 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/AnnotatedDataset"
}
];
// Optional. Filter is not supported at this moment.
string filter = 3 [(google.api.field_behavior) = OPTIONAL];
// Required. Specify the output destination.
OutputConfig output_config = 4 [(google.api.field_behavior) = REQUIRED];
// 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.
message GetDataItemRequest {
// Required. The name of the data item to get, format:
// projects/{project_id}/datasets/{dataset_id}/dataItems/{data_item_id}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/DataItem"
}
];
}
// Request message for ListDataItems.
message ListDataItemsRequest {
// Required. Name of the dataset to list data items, format:
// projects/{project_id}/datasets/{dataset_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Dataset"
}
];
// Optional. Filter is not supported at this moment.
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
// 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.
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Results of listing data items in a dataset.
message ListDataItemsResponse {
// The list of data items to return.
repeated DataItem data_items = 1;
// A token to retrieve next page of results.
string next_page_token = 2;
}
// Request message for GetAnnotatedDataset.
message GetAnnotatedDatasetRequest {
// Required. Name of the annotated dataset to get, format:
// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/
// {annotated_dataset_id}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/AnnotatedDataset"
}
];
}
// Request message for ListAnnotatedDatasets.
message ListAnnotatedDatasetsRequest {
// Required. Name of the dataset to list annotated datasets, format:
// projects/{project_id}/datasets/{dataset_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Dataset"
}
];
// Optional. Filter is not supported at this moment.
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
// 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.
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Results of listing annotated datasets for a dataset.
message ListAnnotatedDatasetsResponse {
// The list of annotated datasets to return.
repeated AnnotatedDataset annotated_datasets = 1;
// A token to retrieve next page of results.
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 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/AnnotatedDataset"
}
];
}
// Request message for starting an image labeling task.
message LabelImageRequest {
// Image labeling task feature.
enum Feature {
FEATURE_UNSPECIFIED = 0;
// Label whole image with one or more of labels.
CLASSIFICATION = 1;
// Label image with bounding boxes for labels.
BOUNDING_BOX = 2;
// Label oriented bounding box. The box does not have to be parallel to
// horizontal line.
ORIENTED_BOUNDING_BOX = 6;
// Label images with bounding poly. A bounding poly is a plane figure that
// is bounded by a finite chain of straight line segments closing in a loop.
BOUNDING_POLY = 3;
// Label images with polyline. Polyline is formed by connected line segments
// which are not in closed form.
POLYLINE = 4;
// Label images with segmentation. Segmentation is different from bounding
// poly since it is more fine-grained, pixel level annotation.
SEGMENTATION = 5;
}
// Required. Config for labeling tasks. The type of request config must
// match the selected feature.
oneof request_config {
// Configuration for image classification task.
// One of image_classification_config, bounding_poly_config,
// 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 are required.
BoundingPolyConfig bounding_poly_config = 5;
// Configuration for polyline task.
// One of image_classification_config, bounding_poly_config,
// 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 are required.
SegmentationConfig segmentation_config = 7;
}
// Required. Name of the dataset to request labeling task, format:
// projects/{project_id}/datasets/{dataset_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Dataset"
}
];
// Required. Basic human annotation config.
HumanAnnotationConfig basic_config = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The type of image labeling task.
Feature feature = 3 [(google.api.field_behavior) = REQUIRED];
}
// Request message for LabelVideo.
message LabelVideoRequest {
// Video labeling task feature.
enum Feature {
FEATURE_UNSPECIFIED = 0;
// Label whole video or video segment with one or more labels.
CLASSIFICATION = 1;
// Label objects with bounding box on image frames extracted from the video.
OBJECT_DETECTION = 2;
// Label and track objects in video.
OBJECT_TRACKING = 3;
// Label the range of video for the specified events.
EVENT = 4;
}
// Required. Config for labeling tasks. The type of request config must
// match the selected feature.
oneof request_config {
// Configuration for video classification task.
// One of video_classification_config, object_detection_config,
// object_tracking_config and event_config is required.
VideoClassificationConfig video_classification_config = 4;
// Configuration for video object detection task.
// One of video_classification_config, object_detection_config,
// object_tracking_config and event_config is required.
ObjectDetectionConfig object_detection_config = 5;
// Configuration for video object tracking task.
// One of video_classification_config, object_detection_config,
// object_tracking_config and event_config is required.
ObjectTrackingConfig object_tracking_config = 6;
// Configuration for video event task.
// One of video_classification_config, object_detection_config,
// object_tracking_config and event_config is required.
EventConfig event_config = 7;
}
// Required. Name of the dataset to request labeling task, format:
// projects/{project_id}/datasets/{dataset_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Dataset"
}
];
// Required. Basic human annotation config.
HumanAnnotationConfig basic_config = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The type of video labeling task.
Feature feature = 3 [(google.api.field_behavior) = REQUIRED];
}
// Request message for LabelText.
message LabelTextRequest {
// Text labeling task feature.
enum Feature {
FEATURE_UNSPECIFIED = 0;
// Label text content to one of more labels.
TEXT_CLASSIFICATION = 1;
// Label entities and their span in text.
TEXT_ENTITY_EXTRACTION = 2;
}
// Required. Config for labeling tasks. The type of request config must
// match the selected feature.
oneof request_config {
// Configuration for text classification task.
// One of text_classification_config and text_entity_extraction_config
// is required.
TextClassificationConfig text_classification_config = 4;
// Configuration for entity extraction task.
// One of text_classification_config and text_entity_extraction_config
// is required.
TextEntityExtractionConfig text_entity_extraction_config = 5;
}
// Required. Name of the data set to request labeling task, format:
// projects/{project_id}/datasets/{dataset_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Dataset"
}
];
// Required. Basic human annotation config.
HumanAnnotationConfig basic_config = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The type of text labeling task.
Feature feature = 6 [(google.api.field_behavior) = REQUIRED];
}
// Request message for GetExample
message GetExampleRequest {
// Required. Name of example, format:
// projects/{project_id}/datasets/{dataset_id}/annotatedDatasets/
// {annotated_dataset_id}/examples/{example_id}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Example"
}
];
// Optional. An expression for filtering Examples. Filter by
// annotation_spec.display_name is supported. Format
// "annotation_spec.display_name = {display_name}"
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for ListExamples.
message ListExamplesRequest {
// Required. Example resource parent.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/AnnotatedDataset"
}
];
// Optional. An expression for filtering Examples. For annotated datasets that
// have annotation spec set, filter by
// annotation_spec.display_name is supported. Format
// "annotation_spec.display_name = {display_name}"
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
// 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.
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Results of listing Examples in and annotated dataset.
message ListExamplesResponse {
// The list of examples to return.
repeated Example examples = 1;
// A token to retrieve next page of results.
string next_page_token = 2;
}
// Request message for CreateAnnotationSpecSet.
message CreateAnnotationSpecSetRequest {
// Required. AnnotationSpecSet resource parent, format:
// projects/{project_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudresourcemanager.googleapis.com/Project"
}
];
// Required. Annotation spec set to create. Annotation specs must be included.
// Only one annotation spec will be accepted for annotation specs with same
// display_name.
AnnotationSpecSet annotation_spec_set = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for GetAnnotationSpecSet.
message GetAnnotationSpecSetRequest {
// Required. AnnotationSpecSet resource name, format:
// projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/AnnotationSpecSet"
}
];
}
// Request message for ListAnnotationSpecSets.
message ListAnnotationSpecSetsRequest {
// Required. Parent of AnnotationSpecSet resource, format:
// projects/{project_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudresourcemanager.googleapis.com/Project"
}
];
// Optional. Filter is not supported at this moment.
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
// 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.
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Results of listing annotation spec set under a project.
message ListAnnotationSpecSetsResponse {
// The list of annotation spec sets.
repeated AnnotationSpecSet annotation_spec_sets = 1;
// A token to retrieve next page of results.
string next_page_token = 2;
}
// Request message for DeleteAnnotationSpecSet.
message DeleteAnnotationSpecSetRequest {
// Required. AnnotationSpec resource name, format:
// `projects/{project_id}/annotationSpecSets/{annotation_spec_set_id}`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/AnnotationSpecSet"
}
];
}
// Request message for CreateInstruction.
message CreateInstructionRequest {
// Required. Instruction resource parent, format:
// projects/{project_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudresourcemanager.googleapis.com/Project"
}
];
// Required. Instruction of how to perform the labeling task.
Instruction instruction = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for GetInstruction.
message GetInstructionRequest {
// Required. Instruction resource name, format:
// projects/{project_id}/instructions/{instruction_id}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Instruction"
}
];
}
// Request message for DeleteInstruction.
message DeleteInstructionRequest {
// Required. Instruction resource name, format:
// projects/{project_id}/instructions/{instruction_id}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Instruction"
}
];
}
// Request message for ListInstructions.
message ListInstructionsRequest {
// Required. Instruction resource parent, format:
// projects/{project_id}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudresourcemanager.googleapis.com/Project"
}
];
// Optional. Filter is not supported at this moment.
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
// 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.
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Results of listing instructions under a project.
message ListInstructionsResponse {
// The list of Instructions to return.
repeated Instruction instructions = 1;
// 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 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Evaluation"
}
];
}
// Request message for SearchEvaluation.
message SearchEvaluationsRequest {
// Required. Evaluation search parent (project ID). Format:
// "projects/{project_id}"
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Evaluation"
}
];
// Optional. To search evaluations, you can filter by the following:
//
// * evaluation_job.evaluation_job_id (the last part of
// [EvaluationJob.name][google.cloud.datalabeling.v1beta1.EvaluationJob.name])
// * evaluation_job.model_id (the {model_name} portion
// of [EvaluationJob.modelVersion][google.cloud.datalabeling.v1beta1.EvaluationJob.model_version])
// * evaluation_job.evaluation_job_run_time_start (Minimum
// threshold for the
// [evaluationJobRunTime][google.cloud.datalabeling.v1beta1.Evaluation.evaluation_job_run_time] that created
// the evaluation)
// * evaluation_job.evaluation_job_run_time_end (Maximum
// threshold for the
// [evaluationJobRunTime][google.cloud.datalabeling.v1beta1.Evaluation.evaluation_job_run_time] that created
// the evaluation)
// * evaluation_job.job_state ([EvaluationJob.state][google.cloud.datalabeling.v1beta1.EvaluationJob.state])
// * annotation_spec.display_name (the Evaluation contains a
// metric for the annotation spec with this
// [displayName][google.cloud.datalabeling.v1beta1.AnnotationSpec.display_name])
//
// To filter by multiple critiera, use the `AND` operator or the `OR`
// operator. The following examples shows a string that filters by several
// critiera:
//
// "evaluation_job.evaluation_job_id =
// {evaluation_job_id} AND evaluation_job.model_id =
// {model_name} AND
// evaluation_job.evaluation_job_run_time_start =
// {timestamp_1} AND
// evaluation_job.evaluation_job_run_time_end =
// {timestamp_2} AND annotation_spec.display_name =
// {display_name}"
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by the
// [nextPageToken][google.cloud.datalabeling.v1beta1.SearchEvaluationsResponse.next_page_token] of the response
// to a previous search request.
//
// If you don't specify this field, the API call requests the first page of
// the search.
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
}
// Results of searching evaluations.
message SearchEvaluationsResponse {
// The list of evaluations matching the search.
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][google.cloud.datalabeling.v1beta1.Evaluation] resource to search for example
// comparisons from. Format:
//
// "projects/{project_id}/datasets/{dataset_id}/evaluations/{evaluation_id}"
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/Evaluation"
}
];
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by the
// [nextPageToken][SearchExampleComparisons.next_page_token] of the response
// to a previous search rquest.
//
// If you don't specify this field, the API call requests the first page of
// the search.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Results of searching example comparisons.
message SearchExampleComparisonsResponse {
// Example comparisons comparing ground truth output and predictions for a
// specific input.
message ExampleComparison {
// The ground truth output for the input.
Example ground_truth_example = 1;
// Predictions by the model for the input.
repeated Example model_created_examples = 2;
}
// A list of example comparisons matching the search criteria.
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 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudresourcemanager.googleapis.com/Project"
}
];
// Required. The evaluation job to create.
EvaluationJob job = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for UpdateEvaluationJob.
message UpdateEvaluationJobRequest {
// Required. Evaluation job that is going to be updated.
EvaluationJob evaluation_job = 1 [(google.api.field_behavior) = REQUIRED];
// Optional. Mask for which fields to update. You can only provide the
// following fields:
//
// * `evaluationJobConfig.humanAnnotationConfig.instruction`
// * `evaluationJobConfig.exampleCount`
// * `evaluationJobConfig.exampleSamplePercentage`
//
// You can provide more than one of these fields by separating them with
// commas.
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for GetEvaluationJob.
message GetEvaluationJobRequest {
// Required. Name of the evaluation job. Format:
//
// "projects/{project_id}/evaluationJobs/{evaluation_job_id}"
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/EvaluationJob"
}
];
}
// 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 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/EvaluationJob"
}
];
}
// 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 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/EvaluationJob"
}
];
}
// 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 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "datalabeling.googleapis.com/EvaluationJob"
}
];
}
// Request message for ListEvaluationJobs.
message ListEvaluationJobsRequest {
// Required. Evaluation job resource parent. Format:
// "projects/{project_id}"
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudresourcemanager.googleapis.com/Project"
}
];
// Optional. You can filter the jobs to list by model_id (also known as
// model_name, as described in
// [EvaluationJob.modelVersion][google.cloud.datalabeling.v1beta1.EvaluationJob.model_version]) or by
// evaluation job state (as described in [EvaluationJob.state][google.cloud.datalabeling.v1beta1.EvaluationJob.state]). To filter
// by both criteria, use the `AND` operator or the `OR` operator. For example,
// you can use the following string for your filter:
// "evaluation_job.model_id = {model_name} AND
// evaluation_job.state = {evaluation_job_state}"
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Requested page size. Server may return fewer results than
// requested. Default value is 100.
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. A token identifying a page of results for the server to return.
// Typically obtained by the
// [nextPageToken][google.cloud.datalabeling.v1beta1.ListEvaluationJobsResponse.next_page_token] in the response
// to the previous request. The request returns the first page if this is
// empty.
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
}
// 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;
}