--- /dev/null
+// Copyright 2018 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.automl.v1beta1;
+
+import "google/api/annotations.proto";
+import "google/cloud/automl/v1beta1/annotation_payload.proto";
+import "google/cloud/automl/v1beta1/dataset.proto";
+import "google/cloud/automl/v1beta1/io.proto";
+import "google/cloud/automl/v1beta1/model.proto";
+import "google/cloud/automl/v1beta1/model_evaluation.proto";
+import "google/cloud/automl/v1beta1/operations.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/field_mask.proto";
+
+option go_package = "google.golang.org/genproto/googleapis/cloud/automl/v1beta1;automl";
+option java_multiple_files = true;
+option java_outer_classname = "AutoMlProto";
+option java_package = "com.google.cloud.automl.v1beta1";
+option php_namespace = "Google\\Cloud\\AutoMl\\V1beta1";
+
+// AutoML Server API.
+//
+// The resource names are assigned by the server.
+// The server never reuses names that it has created after the resources with
+// those names are deleted.
+//
+// An ID of a resource is the last element of the item's resource name. For
+// `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`, then
+// the id for the item is `{dataset_id}`.
+//
+service AutoMl {
+ // Creates a dataset.
+ rpc CreateDataset(CreateDatasetRequest) returns (Dataset) {
+ option (google.api.http) = {
+ post: "/v1beta1/{parent=projects/*/locations/*}/datasets"
+ body: "dataset"
+ };
+ }
+
+ // Gets a dataset.
+ rpc GetDataset(GetDatasetRequest) returns (Dataset) {
+ option (google.api.http) = {
+ get: "/v1beta1/{name=projects/*/locations/*/datasets/*}"
+ };
+ }
+
+ // Lists datasets in a project.
+ rpc ListDatasets(ListDatasetsRequest) returns (ListDatasetsResponse) {
+ option (google.api.http) = {
+ get: "/v1beta1/{parent=projects/*/locations/*}/datasets"
+ };
+ }
+
+ // Deletes a dataset and all of its contents.
+ // Returns empty response in the
+ // [response][google.longrunning.Operation.response] field when it completes,
+ // and `delete_details` in the
+ // [metadata][google.longrunning.Operation.metadata] field.
+ rpc DeleteDataset(DeleteDatasetRequest)
+ returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1beta1/{name=projects/*/locations/*/datasets/*}"
+ };
+ }
+
+ // Imports data into a dataset.
+ // Returns an empty response in the
+ // [response][google.longrunning.Operation.response] field when it completes.
+ rpc ImportData(ImportDataRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1beta1/{name=projects/*/locations/*/datasets/*}:importData"
+ body: "*"
+ };
+ }
+
+ // Exports dataset's data to a Google Cloud Storage bucket.
+ // Returns an empty response in the
+ // [response][google.longrunning.Operation.response] field when it completes.
+ rpc ExportData(ExportDataRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1beta1/{name=projects/*/locations/*/datasets/*}:exportData"
+ body: "*"
+ };
+ }
+
+ // Creates a model.
+ // Returns a Model in the [response][google.longrunning.Operation.response]
+ // field when it completes.
+ // When you create a model, several model evaluations are created for it:
+ // a global evaluation, and one evaluation for each annotation spec.
+ rpc CreateModel(CreateModelRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1beta1/{parent=projects/*/locations/*}/models"
+ body: "model"
+ };
+ }
+
+ // Gets a model.
+ rpc GetModel(GetModelRequest) returns (Model) {
+ option (google.api.http) = {
+ get: "/v1beta1/{name=projects/*/locations/*/models/*}"
+ };
+ }
+
+ // Lists models.
+ rpc ListModels(ListModelsRequest) returns (ListModelsResponse) {
+ option (google.api.http) = {
+ get: "/v1beta1/{parent=projects/*/locations/*}/models"
+ };
+ }
+
+ // Deletes a model.
+ // If a model is already deployed, this only deletes the model in AutoML BE,
+ // and does not change the status of the deployed model in the production
+ // environment.
+ // Returns `google.protobuf.Empty` in the
+ // [response][google.longrunning.Operation.response] field when it completes,
+ // and `delete_details` in the
+ // [metadata][google.longrunning.Operation.metadata] field.
+ rpc DeleteModel(DeleteModelRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ delete: "/v1beta1/{name=projects/*/locations/*/models/*}"
+ };
+ }
+
+ // Deploys model.
+ // Returns a [DeployModelResponse][] in the
+ // [response][google.longrunning.Operation.response] field when it completes.
+ rpc DeployModel(DeployModelRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1beta1/{name=projects/*/locations/*/models/*}:deploy"
+ body: "*"
+ };
+ }
+
+ // Undeploys model.
+ // Returns an `UndeployModelResponse` in the
+ // [response][google.longrunning.Operation.response] field when it completes.
+ rpc UndeployModel(UndeployModelRequest)
+ returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1beta1/{name=projects/*/locations/*/models/*}:undeploy"
+ body: "*"
+ };
+ }
+
+ // Gets a model evaluation.
+ rpc GetModelEvaluation(GetModelEvaluationRequest) returns (ModelEvaluation) {
+ option (google.api.http) = {
+ get: "/v1beta1/{name=projects/*/locations/*/models/*/modelEvaluations/*}"
+ };
+ }
+
+ // Lists model evaluations.
+ rpc ListModelEvaluations(ListModelEvaluationsRequest)
+ returns (ListModelEvaluationsResponse) {
+ option (google.api.http) = {
+ get: "/v1beta1/{parent=projects/*/locations/*/models/*}/modelEvaluations"
+ };
+ }
+}
+
+// Request message for
+// [AutoMl.CreateDataset][google.cloud.automl.v1beta1.AutoMl.CreateDataset].
+message CreateDatasetRequest {
+ // The resource name of the project to create the dataset for.
+ string parent = 1;
+
+ // The dataset to create.
+ Dataset dataset = 2;
+}
+
+// Request message for
+// [AutoMl.GetDataset][google.cloud.automl.v1beta1.AutoMl.GetDataset].
+message GetDatasetRequest {
+ // The resource name of the dataset to retrieve.
+ string name = 1;
+}
+
+// Request message for
+// [AutoMl.ListDatasets][google.cloud.automl.v1beta1.AutoMl.ListDatasets].
+message ListDatasetsRequest {
+ // The resource name of the project from which to list datasets.
+ string parent = 1;
+
+ // An expression for filtering the results of the request.
+ //
+ // * `dataset_metadata` - for existence of the case.
+ //
+ // An example of using the filter is:
+ //
+ // * `translation_dataset_metadata:*` --> The dataset has
+ // translation_dataset_metadata.
+ string filter = 3;
+
+ // Requested page size. Server may return fewer results than requested.
+ // If unspecified, server will pick a default size.
+ int32 page_size = 4;
+
+ // A token identifying a page of results for the server to return
+ // Typically obtained via
+ // [ListDatasetsResponse.next_page_token][google.cloud.automl.v1beta1.ListDatasetsResponse.next_page_token]
+ // of the previous
+ // [AutoMl.ListDatasets][google.cloud.automl.v1beta1.AutoMl.ListDatasets]
+ // call.
+ string page_token = 6;
+}
+
+// Response message for
+// [AutoMl.ListDatasets][google.cloud.automl.v1beta1.AutoMl.ListDatasets].
+message ListDatasetsResponse {
+ // The datasets read.
+ repeated Dataset datasets = 1;
+
+ // A token to retrieve next page of results.
+ // Pass to
+ // [ListDatasetsRequest.page_token][google.cloud.automl.v1beta1.ListDatasetsRequest.page_token]
+ // to obtain that page.
+ string next_page_token = 2;
+}
+
+// Request message for
+// [AutoMl.DeleteDataset][google.cloud.automl.v1beta1.AutoMl.DeleteDataset].
+message DeleteDatasetRequest {
+ // The resource name of the dataset to delete.
+ string name = 1;
+}
+
+// Request message for
+// [AutoMl.ImportData][google.cloud.automl.v1beta1.AutoMl.ImportData].
+message ImportDataRequest {
+ // Required. Dataset name. Dataset must already exist. All imported
+ // annotations and examples will be added.
+ string name = 1;
+
+ // Required. The desired input location.
+ InputConfig input_config = 3;
+}
+
+// Request message for
+// [AutoMl.ExportData][google.cloud.automl.v1beta1.AutoMl.ExportData].
+message ExportDataRequest {
+ // Required. The resource name of the dataset.
+ string name = 1;
+
+ // Required. The desired output location.
+ OutputConfig output_config = 3;
+}
+
+// Request message for
+// [AutoMl.CreateModel][google.cloud.automl.v1beta1.AutoMl.CreateModel].
+message CreateModelRequest {
+ // Resource name of the parent project where the model is being created.
+ string parent = 1;
+
+ // The model to create.
+ Model model = 4;
+}
+
+// Request message for
+// [AutoMl.GetModel][google.cloud.automl.v1beta1.AutoMl.GetModel].
+message GetModelRequest {
+ // Resource name of the model.
+ string name = 1;
+}
+
+// Request message for
+// [AutoMl.ListModels][google.cloud.automl.v1beta1.AutoMl.ListModels].
+message ListModelsRequest {
+ // Resource name of the project, from which to list the models.
+ string parent = 1;
+
+ // An expression for filtering the results of the request.
+ //
+ // * `model_metadata` - for existence of the case.
+ // * `dataset_id` - for = or !=.
+ //
+ // Some examples of using the filter are:
+ //
+ // * `image_classification_model_metadata:*` --> The model has
+ // image_classification_model_metadata.
+ // * `dataset_id=5` --> The model was created from a sibling dataset with
+ // ID 5.
+ string filter = 3;
+
+ // Requested page size.
+ int32 page_size = 4;
+
+ // A token identifying a page of results for the server to return
+ // Typically obtained via
+ // [ListModelsResponse.next_page_token][google.cloud.automl.v1beta1.ListModelsResponse.next_page_token]
+ // of the previous
+ // [AutoMl.ListModels][google.cloud.automl.v1beta1.AutoMl.ListModels] call.
+ string page_token = 6;
+}
+
+// Response message for
+// [AutoMl.ListModels][google.cloud.automl.v1beta1.AutoMl.ListModels].
+message ListModelsResponse {
+ // List of models in the requested page.
+ repeated Model model = 1;
+
+ // A token to retrieve next page of results.
+ // Pass to [ListModels.page_token][] to obtain that page.
+ string next_page_token = 2;
+}
+
+// Request message for
+// [AutoMl.DeleteModel][google.cloud.automl.v1beta1.AutoMl.DeleteModel].
+message DeleteModelRequest {
+ // Resource name of the model being deleted.
+ string name = 1;
+}
+
+// Request message for
+// [AutoMl.DeployModel][google.cloud.automl.v1beta1.AutoMl.DeployModel].
+message DeployModelRequest {
+ // Resource name of the model to deploy.
+ string name = 1;
+}
+
+// Request message for
+// [AutoMl.UndeployModel][google.cloud.automl.v1beta1.AutoMl.UndeployModel].
+message UndeployModelRequest {
+ // Resource name of the model to undeploy.
+ string name = 1;
+}
+
+// Request message for
+// [AutoMl.GetModelEvaluation][google.cloud.automl.v1beta1.AutoMl.GetModelEvaluation].
+message GetModelEvaluationRequest {
+ // Resource name for the model evaluation.
+ string name = 1;
+}
+
+// Request message for
+// [AutoMl.ListModelEvaluations][google.cloud.automl.v1beta1.AutoMl.ListModelEvaluations].
+message ListModelEvaluationsRequest {
+ // Resource name of the model to list the model evaluations for.
+ // If modelId is set as "-", this will list model evaluations from across all
+ // models of the parent location.
+ string parent = 1;
+
+ // An expression for filtering the results of the request.
+ //
+ // * `annotation_spec_id` - for =, != or existence. See example below for
+ // the last.
+ //
+ // Some examples of using the filter are:
+ //
+ // * `annotation_spec_id!=4` --> The model evaluation was done for
+ // annotation spec with ID different than 4.
+ // * `NOT annotation_spec_id:*` --> The model evaluation was done for
+ // aggregate of all annotation specs.
+ string filter = 3;
+
+ // Requested page size.
+ int32 page_size = 4;
+
+ // A token identifying a page of results for the server to return.
+ // Typically obtained via
+ // `ListModelEvaluationsResponse.next_page_token` of the previous
+ // [AutoMl.ListModelEvaluations][google.cloud.automl.v1beta1.AutoMl.ListModelEvaluations]
+ // call.
+ string page_token = 6;
+}
+
+// Response message for
+// [AutoMl.ListModelEvaluations][google.cloud.automl.v1beta1.AutoMl.ListModelEvaluations].
+message ListModelEvaluationsResponse {
+ // List of model evaluations in the requested page.
+ repeated ModelEvaluation model_evaluation = 1;
+
+ // A token to retrieve next page of results.
+ // Pass to [ListModelEvaluations.page_token][] to obtain that page.
+ string next_page_token = 2;
+}