123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392 |
- // Copyright 2017 Google Inc.
- //
- // 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.ml.v1;
- import "google/api/annotations.proto";
- import "google/api/auth.proto";
- import "google/longrunning/operations.proto";
- import "google/protobuf/timestamp.proto";
- option go_package = "google.golang.org/genproto/googleapis/cloud/ml/v1;ml";
- option java_multiple_files = true;
- option java_outer_classname = "ModelServiceProto";
- option java_package = "com.google.cloud.ml.api.v1";
- // Copyright 2017 Google Inc. All Rights Reserved.
- //
- // Proto file for the Google Cloud Machine Learning Engine.
- // Describes the 'models service' to work with the 'model' and 'version'
- // resources.
- // Provides methods that create and manage machine learning models and their
- // versions.
- //
- // A model in this context is a container for versions. The model can't provide
- // predictions without first having a version created for it.
- //
- // Each version is a trained machine learning model, and each is assumed to be
- // an iteration of the same machine learning problem as the other versions of
- // the same model.
- //
- // Your project can define multiple models, each with multiple versions.
- //
- // The basic life cycle of a model is:
- //
- // * Create and train the machine learning model and save it to a
- // Google Cloud Storage location.
- // * Use
- // [projects.models.create](/ml/reference/rest/v1/projects.models/create)
- // to make a new model in your project.
- // * Use
- // [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create)
- // to deploy your saved model.
- // * Use [projects.predict](/ml/reference/rest/v1/projects/predict to
- // request predictions of a version of your model, or use
- // [projects.jobs.create](/ml/reference/rest/v1/projects.jobs/create)
- // to start a batch prediction job.
- service ModelService {
- // Creates a model which will later contain one or more versions.
- //
- // You must add at least one version before you can request predictions from
- // the model. Add versions by calling
- // [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create).
- rpc CreateModel(CreateModelRequest) returns (Model) {
- option (google.api.http) = {
- post: "/v1/{parent=projects/*}/models"
- body: "model"
- };
- }
- // Lists the models in a project.
- //
- // Each project can contain multiple models, and each model can have multiple
- // versions.
- rpc ListModels(ListModelsRequest) returns (ListModelsResponse) {
- option (google.api.http) = {
- get: "/v1/{parent=projects/*}/models"
- };
- }
- // Gets information about a model, including its name, the description (if
- // set), and the default version (if at least one version of the model has
- // been deployed).
- rpc GetModel(GetModelRequest) returns (Model) {
- option (google.api.http) = {
- get: "/v1/{name=projects/*/models/*}"
- };
- }
- // Deletes a model.
- //
- // You can only delete a model if there are no versions in it. You can delete
- // versions by calling
- // [projects.models.versions.delete](/ml/reference/rest/v1/projects.models.versions/delete).
- rpc DeleteModel(DeleteModelRequest) returns (google.longrunning.Operation) {
- option (google.api.http) = {
- delete: "/v1/{name=projects/*/models/*}"
- };
- }
- // Creates a new version of a model from a trained TensorFlow model.
- //
- // If the version created in the cloud by this call is the first deployed
- // version of the specified model, it will be made the default version of the
- // model. When you add a version to a model that already has one or more
- // versions, the default version does not automatically change. If you want a
- // new version to be the default, you must call
- // [projects.models.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
- rpc CreateVersion(CreateVersionRequest)
- returns (google.longrunning.Operation) {
- option (google.api.http) = {
- post: "/v1/{parent=projects/*/models/*}/versions"
- body: "version"
- };
- }
- // Gets basic information about all the versions of a model.
- //
- // If you expect that a model has a lot of versions, or if you need to handle
- // only a limited number of results at a time, you can request that the list
- // be retrieved in batches (called pages):
- rpc ListVersions(ListVersionsRequest) returns (ListVersionsResponse) {
- option (google.api.http) = {
- get: "/v1/{parent=projects/*/models/*}/versions"
- };
- }
- // Gets information about a model version.
- //
- // Models can have multiple versions. You can call
- // [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list)
- // to get the same information that this method returns for all of the
- // versions of a model.
- rpc GetVersion(GetVersionRequest) returns (Version) {
- option (google.api.http) = {
- get: "/v1/{name=projects/*/models/*/versions/*}"
- };
- }
- // Deletes a model version.
- //
- // Each model can have multiple versions deployed and in use at any given
- // time. Use this method to remove a single version.
- //
- // Note: You cannot delete the version that is set as the default version
- // of the model unless it is the only remaining version.
- rpc DeleteVersion(DeleteVersionRequest)
- returns (google.longrunning.Operation) {
- option (google.api.http) = {
- delete: "/v1/{name=projects/*/models/*/versions/*}"
- };
- }
- // Designates a version to be the default for the model.
- //
- // The default version is used for prediction requests made against the model
- // that don't specify a version.
- //
- // The first version to be created for a model is automatically set as the
- // default. You must make any subsequent changes to the default version
- // setting manually using this method.
- rpc SetDefaultVersion(SetDefaultVersionRequest) returns (Version) {
- option (google.api.http) = {
- post: "/v1/{name=projects/*/models/*/versions/*}:setDefault"
- body: "*"
- };
- }
- }
- // Represents a machine learning solution.
- //
- // A model can have multiple versions, each of which is a deployed, trained
- // model ready to receive prediction requests. The model itself is just a
- // container.
- message Model {
- // Required. The name specified for the model when it was created.
- //
- // The model name must be unique within the project it is created in.
- string name = 1;
- // Optional. The description specified for the model when it was created.
- string description = 2;
- // Output only. The default version of the model. This version will be used to
- // handle prediction requests that do not specify a version.
- //
- // You can change the default version by calling
- // [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
- Version default_version = 3;
- // Optional. The list of regions where the model is going to be deployed.
- // Currently only one region per model is supported.
- // Defaults to 'us-central1' if nothing is set.
- repeated string regions = 4;
- // Optional. If true, enables StackDriver Logging for online prediction.
- // Default is false.
- bool online_prediction_logging = 5;
- }
- // Represents a version of the model.
- //
- // Each version is a trained model deployed in the cloud, ready to handle
- // prediction requests. A model can have multiple versions. You can get
- // information about all of the versions of a given model by calling
- // [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
- message Version {
- // Required.The name specified for the version when it was created.
- //
- // The version name must be unique within the model it is created in.
- string name = 1;
- // Optional. The description specified for the version when it was created.
- string description = 2;
- // Output only. If true, this version will be used to handle prediction
- // requests that do not specify a version.
- //
- // You can change the default version by calling
- // [projects.methods.versions.setDefault](/ml/reference/rest/v1/projects.models.versions/setDefault).
- bool is_default = 3;
- // Required. The Google Cloud Storage location of the trained model used to
- // create the version. See the
- // [overview of model deployment](/ml/docs/concepts/deployment-overview) for
- // more informaiton.
- //
- // When passing Version to
- // [projects.models.versions.create](/ml/reference/rest/v1/projects.models.versions/create)
- // the model service uses the specified location as the source of the model.
- // Once deployed, the model version is hosted by the prediction service, so
- // this location is useful only as a historical record.
- string deployment_uri = 4;
- // Output only. The time the version was created.
- google.protobuf.Timestamp create_time = 5;
- // Output only. The time the version was last used for prediction.
- google.protobuf.Timestamp last_use_time = 6;
- // Optional. The Google Cloud ML runtime version to use for this deployment.
- // If not set, Google Cloud ML will choose a version.
- string runtime_version = 8;
- // Optional. Manually select the number of nodes to use for serving the
- // model. If unset (i.e., by default), the number of nodes used to serve
- // the model automatically scales with traffic. However, care should be
- // taken to ramp up traffic according to the model's ability to scale. If
- // your model needs to handle bursts of traffic beyond it's ability to
- // scale, it is recommended you set this field appropriately.
- ManualScaling manual_scaling = 9;
- }
- // Options for manually scaling a model.
- message ManualScaling {
- // The number of nodes to allocate for this model. These nodes are always up,
- // starting from the time the model is deployed, so the cost of operating
- // this model will be proportional to nodes * number of hours since
- // deployment.
- int32 nodes = 1;
- }
- // Request message for the CreateModel method.
- message CreateModelRequest {
- // Required. The project name.
- //
- // Authorization: requires `Editor` role on the specified project.
- string parent = 1;
- // Required. The model to create.
- Model model = 2;
- }
- // Request message for the ListModels method.
- message ListModelsRequest {
- // Required. The name of the project whose models are to be listed.
- //
- // Authorization: requires `Viewer` role on the specified project.
- string parent = 1;
- // Optional. A page token to request the next page of results.
- //
- // You get the token from the `next_page_token` field of the response from
- // the previous call.
- string page_token = 4;
- // Optional. The number of models to retrieve per "page" of results. If there
- // are more remaining results than this number, the response message will
- // contain a valid value in the `next_page_token` field.
- //
- // The default value is 20, and the maximum page size is 100.
- int32 page_size = 5;
- }
- // Response message for the ListModels method.
- message ListModelsResponse {
- // The list of models.
- repeated Model models = 1;
- // Optional. Pass this token as the `page_token` field of the request for a
- // subsequent call.
- string next_page_token = 2;
- }
- // Request message for the GetModel method.
- message GetModelRequest {
- // Required. The name of the model.
- //
- // Authorization: requires `Viewer` role on the parent project.
- string name = 1;
- }
- // Request message for the DeleteModel method.
- message DeleteModelRequest {
- // Required. The name of the model.
- //
- // Authorization: requires `Editor` role on the parent project.
- string name = 1;
- }
- // Uploads the provided trained model version to Cloud Machine Learning.
- message CreateVersionRequest {
- // Required. The name of the model.
- //
- // Authorization: requires `Editor` role on the parent project.
- string parent = 1;
- // Required. The version details.
- Version version = 2;
- }
- // Request message for the ListVersions method.
- message ListVersionsRequest {
- // Required. The name of the model for which to list the version.
- //
- // Authorization: requires `Viewer` role on the parent project.
- string parent = 1;
- // Optional. A page token to request the next page of results.
- //
- // You get the token from the `next_page_token` field of the response from
- // the previous call.
- string page_token = 4;
- // Optional. The number of versions to retrieve per "page" of results. If
- // there are more remaining results than this number, the response message
- // will contain a valid value in the `next_page_token` field.
- //
- // The default value is 20, and the maximum page size is 100.
- int32 page_size = 5;
- }
- // Response message for the ListVersions method.
- message ListVersionsResponse {
- // The list of versions.
- repeated Version versions = 1;
- // Optional. Pass this token as the `page_token` field of the request for a
- // subsequent call.
- string next_page_token = 2;
- }
- // Request message for the GetVersion method.
- message GetVersionRequest {
- // Required. The name of the version.
- //
- // Authorization: requires `Viewer` role on the parent project.
- string name = 1;
- }
- // Request message for the DeleteVerionRequest method.
- message DeleteVersionRequest {
- // Required. The name of the version. You can get the names of all the
- // versions of a model by calling
- // [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
- //
- // Authorization: requires `Editor` role on the parent project.
- string name = 1;
- }
- // Request message for the SetDefaultVersion request.
- message SetDefaultVersionRequest {
- // Required. The name of the version to make the default for the model. You
- // can get the names of all the versions of a model by calling
- // [projects.models.versions.list](/ml/reference/rest/v1/projects.models.versions/list).
- //
- // Authorization: requires `Editor` role on the parent project.
- string name = 1;
- }
|