|
|
|
@ -1,4 +1,4 @@ |
|
|
|
|
// Copyright 2020 Google LLC |
|
|
|
|
// Copyright 2021 Google LLC |
|
|
|
|
// |
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
// you may not use this file except in compliance with the License. |
|
|
|
@ -93,7 +93,7 @@ message Model { |
|
|
|
|
// higher degree of manual configuration. |
|
|
|
|
DEDICATED_RESOURCES = 1; |
|
|
|
|
|
|
|
|
|
// Resources that to large degree are decided by AI Platform, and require |
|
|
|
|
// Resources that to large degree are decided by Vertex AI, and require |
|
|
|
|
// only a modest additional configuration. |
|
|
|
|
AUTOMATIC_RESOURCES = 2; |
|
|
|
|
} |
|
|
|
@ -117,9 +117,9 @@ message Model { |
|
|
|
|
// Immutable. Points to a YAML file stored on Google Cloud Storage describing additional |
|
|
|
|
// information about the Model, that is specific to it. Unset if the Model |
|
|
|
|
// does not have any additional information. |
|
|
|
|
// The schema is defined as an OpenAPI 3.0.2 |
|
|
|
|
// [Schema Object](https://tinyurl.com/y538mdwt#schema-object). |
|
|
|
|
// AutoML Models always have this field populated by AI Platform, if no |
|
|
|
|
// The schema is defined as an OpenAPI 3.0.2 [Schema |
|
|
|
|
// Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). |
|
|
|
|
// AutoML Models always have this field populated by Vertex AI, if no |
|
|
|
|
// additional metadata is needed, this field is set to an empty string. |
|
|
|
|
// Note: The URI given on output will be immutable and probably different, |
|
|
|
|
// including the URI scheme, than the one given on input. The output URI will |
|
|
|
@ -146,7 +146,7 @@ message Model { |
|
|
|
|
// Input only. The specification of the container that is to be used when deploying |
|
|
|
|
// this Model. The specification is ingested upon |
|
|
|
|
// [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel], and all binaries it contains are copied |
|
|
|
|
// and stored internally by AI Platform. |
|
|
|
|
// and stored internally by Vertex AI. |
|
|
|
|
// Not present for AutoML Models. |
|
|
|
|
ModelContainerSpec container_spec = 9 [(google.api.field_behavior) = INPUT_ONLY]; |
|
|
|
|
|
|
|
|
@ -242,7 +242,7 @@ message Model { |
|
|
|
|
// [PredictionService.Explain][]. |
|
|
|
|
repeated string supported_output_storage_formats = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
|
|
|
|
|
|
// Output only. Timestamp when this Model was uploaded into AI Platform. |
|
|
|
|
// Output only. Timestamp when this Model was uploaded into Vertex AI. |
|
|
|
|
google.protobuf.Timestamp create_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
|
|
|
|
|
|
|
|
// Output only. Timestamp when this Model was most recently updated. |
|
|
|
@ -278,9 +278,9 @@ message PredictSchemata { |
|
|
|
|
// of a single instance, which are used in [PredictRequest.instances][google.cloud.aiplatform.v1.PredictRequest.instances], |
|
|
|
|
// [ExplainRequest.instances][] and |
|
|
|
|
// [BatchPredictionJob.input_config][google.cloud.aiplatform.v1.BatchPredictionJob.input_config]. |
|
|
|
|
// The schema is defined as an OpenAPI 3.0.2 |
|
|
|
|
// [Schema Object](https://tinyurl.com/y538mdwt#schema-object). |
|
|
|
|
// AutoML Models always have this field populated by AI Platform. |
|
|
|
|
// The schema is defined as an OpenAPI 3.0.2 [Schema |
|
|
|
|
// Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). |
|
|
|
|
// AutoML Models always have this field populated by Vertex AI. |
|
|
|
|
// Note: The URI given on output will be immutable and probably different, |
|
|
|
|
// including the URI scheme, than the one given on input. The output URI will |
|
|
|
|
// point to a location where the user only has a read access. |
|
|
|
@ -290,9 +290,9 @@ message PredictSchemata { |
|
|
|
|
// parameters of prediction and explanation via |
|
|
|
|
// [PredictRequest.parameters][google.cloud.aiplatform.v1.PredictRequest.parameters], [ExplainRequest.parameters][] and |
|
|
|
|
// [BatchPredictionJob.model_parameters][google.cloud.aiplatform.v1.BatchPredictionJob.model_parameters]. |
|
|
|
|
// The schema is defined as an OpenAPI 3.0.2 |
|
|
|
|
// [Schema Object](https://tinyurl.com/y538mdwt#schema-object). |
|
|
|
|
// AutoML Models always have this field populated by AI Platform, if no |
|
|
|
|
// The schema is defined as an OpenAPI 3.0.2 [Schema |
|
|
|
|
// Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). |
|
|
|
|
// AutoML Models always have this field populated by Vertex AI, if no |
|
|
|
|
// parameters are supported, then it is set to an empty string. |
|
|
|
|
// Note: The URI given on output will be immutable and probably different, |
|
|
|
|
// including the URI scheme, than the one given on input. The output URI will |
|
|
|
@ -303,31 +303,35 @@ message PredictSchemata { |
|
|
|
|
// of a single prediction produced by this Model, which are returned via |
|
|
|
|
// [PredictResponse.predictions][google.cloud.aiplatform.v1.PredictResponse.predictions], [ExplainResponse.explanations][], and |
|
|
|
|
// [BatchPredictionJob.output_config][google.cloud.aiplatform.v1.BatchPredictionJob.output_config]. |
|
|
|
|
// The schema is defined as an OpenAPI 3.0.2 |
|
|
|
|
// [Schema Object](https://tinyurl.com/y538mdwt#schema-object). |
|
|
|
|
// AutoML Models always have this field populated by AI Platform. |
|
|
|
|
// The schema is defined as an OpenAPI 3.0.2 [Schema |
|
|
|
|
// Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). |
|
|
|
|
// AutoML Models always have this field populated by Vertex AI. |
|
|
|
|
// Note: The URI given on output will be immutable and probably different, |
|
|
|
|
// including the URI scheme, than the one given on input. The output URI will |
|
|
|
|
// point to a location where the user only has a read access. |
|
|
|
|
string prediction_schema_uri = 3 [(google.api.field_behavior) = IMMUTABLE]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Specification of a container for serving predictions. This message is a |
|
|
|
|
// subset of the Kubernetes Container v1 core |
|
|
|
|
// [specification](https://tinyurl.com/k8s-io-api/v1.18/#container-v1-core). |
|
|
|
|
// Specification of a container for serving predictions. Some fields in this |
|
|
|
|
// message correspond to fields in the [Kubernetes Container v1 core |
|
|
|
|
// specification](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). |
|
|
|
|
message ModelContainerSpec { |
|
|
|
|
// Required. Immutable. URI of the Docker image to be used as the custom container for serving |
|
|
|
|
// predictions. This URI must identify an image in Artifact Registry or |
|
|
|
|
// Container Registry. Learn more about the container publishing |
|
|
|
|
// requirements, including permissions requirements for the AI Platform |
|
|
|
|
// Service Agent, |
|
|
|
|
// [here](https://tinyurl.com/cust-cont-reqs#publishing). |
|
|
|
|
// Container Registry. Learn more about the [container publishing |
|
|
|
|
// requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing), |
|
|
|
|
// including permissions requirements for the AI Platform Service Agent. |
|
|
|
|
// |
|
|
|
|
// The container image is ingested upon [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel], stored |
|
|
|
|
// internally, and this original path is afterwards not used. |
|
|
|
|
// |
|
|
|
|
// To learn about the requirements for the Docker image itself, see |
|
|
|
|
// [Custom container requirements](https://tinyurl.com/cust-cont-reqs). |
|
|
|
|
// [Custom container |
|
|
|
|
// requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#). |
|
|
|
|
// |
|
|
|
|
// You can use the URI to one of Vertex AI's [pre-built container images for |
|
|
|
|
// prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers) |
|
|
|
|
// in this field. |
|
|
|
|
string image_uri = 1 [ |
|
|
|
|
(google.api.field_behavior) = REQUIRED, |
|
|
|
|
(google.api.field_behavior) = IMMUTABLE |
|
|
|
@ -343,19 +347,19 @@ message ModelContainerSpec { |
|
|
|
|
// in conjunction with the [args][google.cloud.aiplatform.v1.ModelContainerSpec.args] field or the |
|
|
|
|
// container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd), |
|
|
|
|
// if either exists. If this field is not specified and the container does not |
|
|
|
|
// have an `ENTRYPOINT`, then refer to the Docker documentation about how |
|
|
|
|
// have an `ENTRYPOINT`, then refer to the Docker documentation about [how |
|
|
|
|
// `CMD` and `ENTRYPOINT` |
|
|
|
|
// [interact](https://tinyurl.com/h3kdcgs). |
|
|
|
|
// interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). |
|
|
|
|
// |
|
|
|
|
// If you specify this field, then you can also specify the `args` field to |
|
|
|
|
// provide additional arguments for this command. However, if you specify this |
|
|
|
|
// field, then the container's `CMD` is ignored. See the |
|
|
|
|
// [Kubernetes documentation](https://tinyurl.com/y8bvllf4) about how the |
|
|
|
|
// [Kubernetes documentation about how the |
|
|
|
|
// `command` and `args` fields interact with a container's `ENTRYPOINT` and |
|
|
|
|
// `CMD`. |
|
|
|
|
// `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). |
|
|
|
|
// |
|
|
|
|
// In this field, you can reference environment variables |
|
|
|
|
// [set by AI Platform](https://tinyurl.com/cust-cont-reqs#aip-variables) |
|
|
|
|
// In this field, you can reference [environment variables set by Vertex |
|
|
|
|
// AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) |
|
|
|
|
// and environment variables set in the [env][google.cloud.aiplatform.v1.ModelContainerSpec.env] field. |
|
|
|
|
// You cannot reference environment variables set in the Docker image. In |
|
|
|
|
// order for environment variables to be expanded, reference them by using the |
|
|
|
@ -367,7 +371,8 @@ message ModelContainerSpec { |
|
|
|
|
// syntax with `$$`; for example: |
|
|
|
|
// <code>$$(<var>VARIABLE_NAME</var>)</code> |
|
|
|
|
// This field corresponds to the `command` field of the Kubernetes Containers |
|
|
|
|
// [v1 core API](https://tinyurl.com/k8s-io-api/v1.18/#container-v1-core). |
|
|
|
|
// [v1 core |
|
|
|
|
// API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). |
|
|
|
|
repeated string command = 2 [(google.api.field_behavior) = IMMUTABLE]; |
|
|
|
|
|
|
|
|
|
// Immutable. Specifies arguments for the command that runs when the container starts. |
|
|
|
@ -379,19 +384,20 @@ message ModelContainerSpec { |
|
|
|
|
// If you don't specify this field but do specify the |
|
|
|
|
// [command][google.cloud.aiplatform.v1.ModelContainerSpec.command] field, then the command from the |
|
|
|
|
// `command` field runs without any additional arguments. See the |
|
|
|
|
// [Kubernetes documentation](https://tinyurl.com/y8bvllf4) about how the |
|
|
|
|
// [Kubernetes documentation about how the |
|
|
|
|
// `command` and `args` fields interact with a container's `ENTRYPOINT` and |
|
|
|
|
// `CMD`. |
|
|
|
|
// `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). |
|
|
|
|
// |
|
|
|
|
// If you don't specify this field and don't specify the `command` field, |
|
|
|
|
// then the container's |
|
|
|
|
// [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#cmd) and |
|
|
|
|
// `CMD` determine what runs based on their default behavior. See the Docker |
|
|
|
|
// documentation about how `CMD` and `ENTRYPOINT` |
|
|
|
|
// [interact](https://tinyurl.com/h3kdcgs). |
|
|
|
|
// documentation about [how `CMD` and `ENTRYPOINT` |
|
|
|
|
// interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). |
|
|
|
|
// |
|
|
|
|
// In this field, you can reference environment variables |
|
|
|
|
// [set by AI Platform](https://tinyurl.com/cust-cont-reqs#aip-variables) |
|
|
|
|
// In this field, you can reference [environment variables |
|
|
|
|
// set by Vertex |
|
|
|
|
// AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) |
|
|
|
|
// and environment variables set in the [env][google.cloud.aiplatform.v1.ModelContainerSpec.env] field. |
|
|
|
|
// You cannot reference environment variables set in the Docker image. In |
|
|
|
|
// order for environment variables to be expanded, reference them by using the |
|
|
|
@ -403,7 +409,8 @@ message ModelContainerSpec { |
|
|
|
|
// syntax with `$$`; for example: |
|
|
|
|
// <code>$$(<var>VARIABLE_NAME</var>)</code> |
|
|
|
|
// This field corresponds to the `args` field of the Kubernetes Containers |
|
|
|
|
// [v1 core API](https://tinyurl.com/k8s-io-api/v1.18/#container-v1-core). |
|
|
|
|
// [v1 core |
|
|
|
|
// API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). |
|
|
|
|
repeated string args = 3 [(google.api.field_behavior) = IMMUTABLE]; |
|
|
|
|
|
|
|
|
|
// Immutable. List of environment variables to set in the container. After the container |
|
|
|
@ -432,13 +439,15 @@ message ModelContainerSpec { |
|
|
|
|
// does not occur. |
|
|
|
|
// |
|
|
|
|
// This field corresponds to the `env` field of the Kubernetes Containers |
|
|
|
|
// [v1 core API](https://tinyurl.com/k8s-io-api/v1.18/#container-v1-core). |
|
|
|
|
// [v1 core |
|
|
|
|
// API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). |
|
|
|
|
repeated EnvVar env = 4 [(google.api.field_behavior) = IMMUTABLE]; |
|
|
|
|
|
|
|
|
|
// Immutable. List of ports to expose from the container. AI Platform sends any |
|
|
|
|
// Immutable. List of ports to expose from the container. Vertex AI sends any |
|
|
|
|
// prediction requests that it receives to the first port on this list. AI |
|
|
|
|
// Platform also sends |
|
|
|
|
// [liveness and health checks](https://tinyurl.com/cust-cont-reqs#health) |
|
|
|
|
// [liveness and health |
|
|
|
|
// checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#liveness) |
|
|
|
|
// to this port. |
|
|
|
|
// |
|
|
|
|
// If you do not specify this field, it defaults to following value: |
|
|
|
@ -451,18 +460,19 @@ message ModelContainerSpec { |
|
|
|
|
// ] |
|
|
|
|
// ``` |
|
|
|
|
// |
|
|
|
|
// AI Platform does not use ports other than the first one listed. This field |
|
|
|
|
// Vertex AI does not use ports other than the first one listed. This field |
|
|
|
|
// corresponds to the `ports` field of the Kubernetes Containers |
|
|
|
|
// [v1 core API](https://tinyurl.com/k8s-io-api/v1.18/#container-v1-core). |
|
|
|
|
// [v1 core |
|
|
|
|
// API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). |
|
|
|
|
repeated Port ports = 5 [(google.api.field_behavior) = IMMUTABLE]; |
|
|
|
|
|
|
|
|
|
// Immutable. HTTP path on the container to send prediction requests to. AI Platform |
|
|
|
|
// Immutable. HTTP path on the container to send prediction requests to. Vertex AI |
|
|
|
|
// forwards requests sent using |
|
|
|
|
// [projects.locations.endpoints.predict][google.cloud.aiplatform.v1.PredictionService.Predict] to this |
|
|
|
|
// path on the container's IP address and port. AI Platform then returns the |
|
|
|
|
// path on the container's IP address and port. Vertex AI then returns the |
|
|
|
|
// container's response in the API response. |
|
|
|
|
// |
|
|
|
|
// For example, if you set this field to `/foo`, then when AI Platform |
|
|
|
|
// For example, if you set this field to `/foo`, then when Vertex AI |
|
|
|
|
// receives a prediction request, it forwards the request body in a POST |
|
|
|
|
// request to the `/foo` path on the port of your container specified by the |
|
|
|
|
// first value of this `ModelContainerSpec`'s |
|
|
|
@ -475,24 +485,23 @@ message ModelContainerSpec { |
|
|
|
|
// |
|
|
|
|
// * <var>ENDPOINT</var>: The last segment (following `endpoints/`)of the |
|
|
|
|
// Endpoint.name][] field of the Endpoint where this Model has been |
|
|
|
|
// deployed. (AI Platform makes this value available to your container code |
|
|
|
|
// as the |
|
|
|
|
// [`AIP_ENDPOINT_ID`](https://tinyurl.com/cust-cont-reqs#aip-variables) |
|
|
|
|
// environment variable.) |
|
|
|
|
// deployed. (Vertex AI makes this value available to your container code |
|
|
|
|
// as the [`AIP_ENDPOINT_ID` environment |
|
|
|
|
// variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) |
|
|
|
|
// |
|
|
|
|
// * <var>DEPLOYED_MODEL</var>: [DeployedModel.id][google.cloud.aiplatform.v1.DeployedModel.id] of the `DeployedModel`. |
|
|
|
|
// (AI Platform makes this value available to your container code |
|
|
|
|
// (Vertex AI makes this value available to your container code |
|
|
|
|
// as the [`AIP_DEPLOYED_MODEL_ID` environment |
|
|
|
|
// variable](https://tinyurl.com/cust-cont-reqs#aip-variables).) |
|
|
|
|
// variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) |
|
|
|
|
string predict_route = 6 [(google.api.field_behavior) = IMMUTABLE]; |
|
|
|
|
|
|
|
|
|
// Immutable. HTTP path on the container to send health checks to. AI Platform |
|
|
|
|
// Immutable. HTTP path on the container to send health checks to. Vertex AI |
|
|
|
|
// intermittently sends GET requests to this path on the container's IP |
|
|
|
|
// address and port to check that the container is healthy. Read more about |
|
|
|
|
// [health |
|
|
|
|
// checks](https://tinyurl.com/cust-cont-reqs#checks). |
|
|
|
|
// checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health). |
|
|
|
|
// |
|
|
|
|
// For example, if you set this field to `/bar`, then AI Platform |
|
|
|
|
// For example, if you set this field to `/bar`, then Vertex AI |
|
|
|
|
// intermittently sends a GET request to the `/bar` path on the port of your |
|
|
|
|
// container specified by the first value of this `ModelContainerSpec`'s |
|
|
|
|
// [ports][google.cloud.aiplatform.v1.ModelContainerSpec.ports] field. |
|
|
|
@ -504,15 +513,14 @@ message ModelContainerSpec { |
|
|
|
|
// |
|
|
|
|
// * <var>ENDPOINT</var>: The last segment (following `endpoints/`)of the |
|
|
|
|
// Endpoint.name][] field of the Endpoint where this Model has been |
|
|
|
|
// deployed. (AI Platform makes this value available to your container code |
|
|
|
|
// as the |
|
|
|
|
// [`AIP_ENDPOINT_ID`](https://tinyurl.com/cust-cont-reqs#aip-variables) |
|
|
|
|
// environment variable.) |
|
|
|
|
// deployed. (Vertex AI makes this value available to your container code |
|
|
|
|
// as the [`AIP_ENDPOINT_ID` environment |
|
|
|
|
// variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) |
|
|
|
|
// |
|
|
|
|
// * <var>DEPLOYED_MODEL</var>: [DeployedModel.id][google.cloud.aiplatform.v1.DeployedModel.id] of the `DeployedModel`. |
|
|
|
|
// (AI Platform makes this value available to your container code as the |
|
|
|
|
// [`AIP_DEPLOYED_MODEL_ID`](https://tinyurl.com/cust-cont-reqs#aip-variables) |
|
|
|
|
// environment variable.) |
|
|
|
|
// (Vertex AI makes this value available to your container code as the |
|
|
|
|
// [`AIP_DEPLOYED_MODEL_ID` environment |
|
|
|
|
// variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) |
|
|
|
|
string health_route = 7 [(google.api.field_behavior) = IMMUTABLE]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|