blob: 5210c806516abfc9541d290d242f1e7c571b4697 [file] [log] [blame]
// Copyright 2023 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.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.33.0
// protoc v4.25.3
// source: google/cloud/aiplatform/v1beta1/model.proto
package aiplatformpb
import (
reflect "reflect"
sync "sync"
_ "google.golang.org/genproto/googleapis/api/annotations"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
structpb "google.golang.org/protobuf/types/known/structpb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// Identifies a type of Model's prediction resources.
type Model_DeploymentResourcesType int32
const (
// Should not be used.
Model_DEPLOYMENT_RESOURCES_TYPE_UNSPECIFIED Model_DeploymentResourcesType = 0
// Resources that are dedicated to the
// [DeployedModel][google.cloud.aiplatform.v1beta1.DeployedModel], and that
// need a higher degree of manual configuration.
Model_DEDICATED_RESOURCES Model_DeploymentResourcesType = 1
// Resources that to large degree are decided by Vertex AI, and require
// only a modest additional configuration.
Model_AUTOMATIC_RESOURCES Model_DeploymentResourcesType = 2
// Resources that can be shared by multiple
// [DeployedModels][google.cloud.aiplatform.v1beta1.DeployedModel]. A
// pre-configured
// [DeploymentResourcePool][google.cloud.aiplatform.v1beta1.DeploymentResourcePool]
// is required.
Model_SHARED_RESOURCES Model_DeploymentResourcesType = 3
)
// Enum value maps for Model_DeploymentResourcesType.
var (
Model_DeploymentResourcesType_name = map[int32]string{
0: "DEPLOYMENT_RESOURCES_TYPE_UNSPECIFIED",
1: "DEDICATED_RESOURCES",
2: "AUTOMATIC_RESOURCES",
3: "SHARED_RESOURCES",
}
Model_DeploymentResourcesType_value = map[string]int32{
"DEPLOYMENT_RESOURCES_TYPE_UNSPECIFIED": 0,
"DEDICATED_RESOURCES": 1,
"AUTOMATIC_RESOURCES": 2,
"SHARED_RESOURCES": 3,
}
)
func (x Model_DeploymentResourcesType) Enum() *Model_DeploymentResourcesType {
p := new(Model_DeploymentResourcesType)
*p = x
return p
}
func (x Model_DeploymentResourcesType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Model_DeploymentResourcesType) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1beta1_model_proto_enumTypes[0].Descriptor()
}
func (Model_DeploymentResourcesType) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1beta1_model_proto_enumTypes[0]
}
func (x Model_DeploymentResourcesType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Model_DeploymentResourcesType.Descriptor instead.
func (Model_DeploymentResourcesType) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{0, 0}
}
// The Model content that can be exported.
type Model_ExportFormat_ExportableContent int32
const (
// Should not be used.
Model_ExportFormat_EXPORTABLE_CONTENT_UNSPECIFIED Model_ExportFormat_ExportableContent = 0
// Model artifact and any of its supported files. Will be exported to the
// location specified by the `artifactDestination` field of the
// [ExportModelRequest.output_config][google.cloud.aiplatform.v1beta1.ExportModelRequest.output_config]
// object.
Model_ExportFormat_ARTIFACT Model_ExportFormat_ExportableContent = 1
// The container image that is to be used when deploying this Model. Will
// be exported to the location specified by the `imageDestination` field
// of the
// [ExportModelRequest.output_config][google.cloud.aiplatform.v1beta1.ExportModelRequest.output_config]
// object.
Model_ExportFormat_IMAGE Model_ExportFormat_ExportableContent = 2
)
// Enum value maps for Model_ExportFormat_ExportableContent.
var (
Model_ExportFormat_ExportableContent_name = map[int32]string{
0: "EXPORTABLE_CONTENT_UNSPECIFIED",
1: "ARTIFACT",
2: "IMAGE",
}
Model_ExportFormat_ExportableContent_value = map[string]int32{
"EXPORTABLE_CONTENT_UNSPECIFIED": 0,
"ARTIFACT": 1,
"IMAGE": 2,
}
)
func (x Model_ExportFormat_ExportableContent) Enum() *Model_ExportFormat_ExportableContent {
p := new(Model_ExportFormat_ExportableContent)
*p = x
return p
}
func (x Model_ExportFormat_ExportableContent) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Model_ExportFormat_ExportableContent) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1beta1_model_proto_enumTypes[1].Descriptor()
}
func (Model_ExportFormat_ExportableContent) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1beta1_model_proto_enumTypes[1]
}
func (x Model_ExportFormat_ExportableContent) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Model_ExportFormat_ExportableContent.Descriptor instead.
func (Model_ExportFormat_ExportableContent) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{0, 0, 0}
}
// Source of the model.
// Different from `objective` field, this `ModelSourceType` enum
// indicates the source from which the model was accessed or obtained,
// whereas the `objective` indicates the overall aim or function of this
// model.
type ModelSourceInfo_ModelSourceType int32
const (
// Should not be used.
ModelSourceInfo_MODEL_SOURCE_TYPE_UNSPECIFIED ModelSourceInfo_ModelSourceType = 0
// The Model is uploaded by automl training pipeline.
ModelSourceInfo_AUTOML ModelSourceInfo_ModelSourceType = 1
// The Model is uploaded by user or custom training pipeline.
ModelSourceInfo_CUSTOM ModelSourceInfo_ModelSourceType = 2
// The Model is registered and sync'ed from BigQuery ML.
ModelSourceInfo_BQML ModelSourceInfo_ModelSourceType = 3
// The Model is saved or tuned from Model Garden.
ModelSourceInfo_MODEL_GARDEN ModelSourceInfo_ModelSourceType = 4
// The Model is saved or tuned from Genie.
ModelSourceInfo_GENIE ModelSourceInfo_ModelSourceType = 5
// The Model is uploaded by text embedding finetuning pipeline.
ModelSourceInfo_CUSTOM_TEXT_EMBEDDING ModelSourceInfo_ModelSourceType = 6
// The Model is saved or tuned from Marketplace.
ModelSourceInfo_MARKETPLACE ModelSourceInfo_ModelSourceType = 7
)
// Enum value maps for ModelSourceInfo_ModelSourceType.
var (
ModelSourceInfo_ModelSourceType_name = map[int32]string{
0: "MODEL_SOURCE_TYPE_UNSPECIFIED",
1: "AUTOML",
2: "CUSTOM",
3: "BQML",
4: "MODEL_GARDEN",
5: "GENIE",
6: "CUSTOM_TEXT_EMBEDDING",
7: "MARKETPLACE",
}
ModelSourceInfo_ModelSourceType_value = map[string]int32{
"MODEL_SOURCE_TYPE_UNSPECIFIED": 0,
"AUTOML": 1,
"CUSTOM": 2,
"BQML": 3,
"MODEL_GARDEN": 4,
"GENIE": 5,
"CUSTOM_TEXT_EMBEDDING": 6,
"MARKETPLACE": 7,
}
)
func (x ModelSourceInfo_ModelSourceType) Enum() *ModelSourceInfo_ModelSourceType {
p := new(ModelSourceInfo_ModelSourceType)
*p = x
return p
}
func (x ModelSourceInfo_ModelSourceType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (ModelSourceInfo_ModelSourceType) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1beta1_model_proto_enumTypes[2].Descriptor()
}
func (ModelSourceInfo_ModelSourceType) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1beta1_model_proto_enumTypes[2]
}
func (x ModelSourceInfo_ModelSourceType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use ModelSourceInfo_ModelSourceType.Descriptor instead.
func (ModelSourceInfo_ModelSourceType) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{7, 0}
}
// A trained machine learning Model.
type Model struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The resource name of the Model.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Output only. Immutable. The version ID of the model.
// A new version is committed when a new model version is uploaded or
// trained under an existing model id. It is an auto-incrementing decimal
// number in string representation.
VersionId string `protobuf:"bytes,28,opt,name=version_id,json=versionId,proto3" json:"version_id,omitempty"`
// User provided version aliases so that a model version can be referenced via
// alias (i.e.
// `projects/{project}/locations/{location}/models/{model_id}@{version_alias}`
// instead of auto-generated version id (i.e.
// `projects/{project}/locations/{location}/models/{model_id}@{version_id})`.
// The format is [a-z][a-zA-Z0-9-]{0,126}[a-z0-9] to distinguish from
// version_id. A default version alias will be created for the first version
// of the model, and there must be exactly one default version alias for a
// model.
VersionAliases []string `protobuf:"bytes,29,rep,name=version_aliases,json=versionAliases,proto3" json:"version_aliases,omitempty"`
// Output only. Timestamp when this version was created.
VersionCreateTime *timestamppb.Timestamp `protobuf:"bytes,31,opt,name=version_create_time,json=versionCreateTime,proto3" json:"version_create_time,omitempty"`
// Output only. Timestamp when this version was most recently updated.
VersionUpdateTime *timestamppb.Timestamp `protobuf:"bytes,32,opt,name=version_update_time,json=versionUpdateTime,proto3" json:"version_update_time,omitempty"`
// Required. The display name of the Model.
// The name can be up to 128 characters long and can consist of any UTF-8
// characters.
DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
// The description of the Model.
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
// The description of this version.
VersionDescription string `protobuf:"bytes,30,opt,name=version_description,json=versionDescription,proto3" json:"version_description,omitempty"`
// The schemata that describe formats of the Model's predictions and
// explanations as given and returned via
// [PredictionService.Predict][google.cloud.aiplatform.v1beta1.PredictionService.Predict]
// and
// [PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain].
PredictSchemata *PredictSchemata `protobuf:"bytes,4,opt,name=predict_schemata,json=predictSchemata,proto3" json:"predict_schemata,omitempty"`
// 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://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
// point to a location where the user only has a read access.
MetadataSchemaUri string `protobuf:"bytes,5,opt,name=metadata_schema_uri,json=metadataSchemaUri,proto3" json:"metadata_schema_uri,omitempty"`
// Immutable. An additional information about the Model; the schema of the
// metadata can be found in
// [metadata_schema][google.cloud.aiplatform.v1beta1.Model.metadata_schema_uri].
// Unset if the Model does not have any additional information.
Metadata *structpb.Value `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"`
// Output only. The formats in which this Model may be exported. If empty,
// this Model is not available for export.
SupportedExportFormats []*Model_ExportFormat `protobuf:"bytes,20,rep,name=supported_export_formats,json=supportedExportFormats,proto3" json:"supported_export_formats,omitempty"`
// Output only. The resource name of the TrainingPipeline that uploaded this
// Model, if any.
TrainingPipeline string `protobuf:"bytes,7,opt,name=training_pipeline,json=trainingPipeline,proto3" json:"training_pipeline,omitempty"`
// 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.v1beta1.ModelService.UploadModel],
// and all binaries it contains are copied and stored internally by Vertex AI.
// Not required for AutoML Models.
ContainerSpec *ModelContainerSpec `protobuf:"bytes,9,opt,name=container_spec,json=containerSpec,proto3" json:"container_spec,omitempty"`
// Immutable. The path to the directory containing the Model artifact and any
// of its supporting files. Not required for AutoML Models.
ArtifactUri string `protobuf:"bytes,26,opt,name=artifact_uri,json=artifactUri,proto3" json:"artifact_uri,omitempty"`
// Output only. When this Model is deployed, its prediction resources are
// described by the `prediction_resources` field of the
// [Endpoint.deployed_models][google.cloud.aiplatform.v1beta1.Endpoint.deployed_models]
// object. Because not all Models support all resource configuration types,
// the configuration types this Model supports are listed here. If no
// configuration types are listed, the Model cannot be deployed to an
// [Endpoint][google.cloud.aiplatform.v1beta1.Endpoint] and does not support
// online predictions
// ([PredictionService.Predict][google.cloud.aiplatform.v1beta1.PredictionService.Predict]
// or
// [PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain]).
// Such a Model can serve predictions by using a
// [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob],
// if it has at least one entry each in
// [supported_input_storage_formats][google.cloud.aiplatform.v1beta1.Model.supported_input_storage_formats]
// and
// [supported_output_storage_formats][google.cloud.aiplatform.v1beta1.Model.supported_output_storage_formats].
SupportedDeploymentResourcesTypes []Model_DeploymentResourcesType `protobuf:"varint,10,rep,packed,name=supported_deployment_resources_types,json=supportedDeploymentResourcesTypes,proto3,enum=google.cloud.aiplatform.v1beta1.Model_DeploymentResourcesType" json:"supported_deployment_resources_types,omitempty"`
// Output only. The formats this Model supports in
// [BatchPredictionJob.input_config][google.cloud.aiplatform.v1beta1.BatchPredictionJob.input_config].
// If
// [PredictSchemata.instance_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri]
// exists, the instances should be given as per that schema.
//
// The possible formats are:
//
// * `jsonl`
// The JSON Lines format, where each instance is a single line. Uses
// [GcsSource][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig.gcs_source].
//
// * `csv`
// The CSV format, where each instance is a single comma-separated line.
// The first line in the file is the header, containing comma-separated field
// names. Uses
// [GcsSource][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig.gcs_source].
//
// * `tf-record`
// The TFRecord format, where each instance is a single record in tfrecord
// syntax. Uses
// [GcsSource][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig.gcs_source].
//
// * `tf-record-gzip`
// Similar to `tf-record`, but the file is gzipped. Uses
// [GcsSource][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig.gcs_source].
//
// * `bigquery`
// Each instance is a single row in BigQuery. Uses
// [BigQuerySource][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig.bigquery_source].
//
// * `file-list`
// Each line of the file is the location of an instance to process, uses
// `gcs_source` field of the
// [InputConfig][google.cloud.aiplatform.v1beta1.BatchPredictionJob.InputConfig]
// object.
//
// If this Model doesn't support any of these formats it means it cannot be
// used with a
// [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob].
// However, if it has
// [supported_deployment_resources_types][google.cloud.aiplatform.v1beta1.Model.supported_deployment_resources_types],
// it could serve online predictions by using
// [PredictionService.Predict][google.cloud.aiplatform.v1beta1.PredictionService.Predict]
// or
// [PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain].
SupportedInputStorageFormats []string `protobuf:"bytes,11,rep,name=supported_input_storage_formats,json=supportedInputStorageFormats,proto3" json:"supported_input_storage_formats,omitempty"`
// Output only. The formats this Model supports in
// [BatchPredictionJob.output_config][google.cloud.aiplatform.v1beta1.BatchPredictionJob.output_config].
// If both
// [PredictSchemata.instance_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.instance_schema_uri]
// and
// [PredictSchemata.prediction_schema_uri][google.cloud.aiplatform.v1beta1.PredictSchemata.prediction_schema_uri]
// exist, the predictions are returned together with their instances. In other
// words, the prediction has the original instance data first, followed by the
// actual prediction content (as per the schema).
//
// The possible formats are:
//
// * `jsonl`
// The JSON Lines format, where each prediction is a single line. Uses
// [GcsDestination][google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputConfig.gcs_destination].
//
// * `csv`
// The CSV format, where each prediction is a single comma-separated line.
// The first line in the file is the header, containing comma-separated field
// names. Uses
// [GcsDestination][google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputConfig.gcs_destination].
//
// * `bigquery`
// Each prediction is a single row in a BigQuery table, uses
// [BigQueryDestination][google.cloud.aiplatform.v1beta1.BatchPredictionJob.OutputConfig.bigquery_destination]
// .
//
// If this Model doesn't support any of these formats it means it cannot be
// used with a
// [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob].
// However, if it has
// [supported_deployment_resources_types][google.cloud.aiplatform.v1beta1.Model.supported_deployment_resources_types],
// it could serve online predictions by using
// [PredictionService.Predict][google.cloud.aiplatform.v1beta1.PredictionService.Predict]
// or
// [PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain].
SupportedOutputStorageFormats []string `protobuf:"bytes,12,rep,name=supported_output_storage_formats,json=supportedOutputStorageFormats,proto3" json:"supported_output_storage_formats,omitempty"`
// Output only. Timestamp when this Model was uploaded into Vertex AI.
CreateTime *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Output only. Timestamp when this Model was most recently updated.
UpdateTime *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
// Output only. The pointers to DeployedModels created from this Model. Note
// that Model could have been deployed to Endpoints in different Locations.
DeployedModels []*DeployedModelRef `protobuf:"bytes,15,rep,name=deployed_models,json=deployedModels,proto3" json:"deployed_models,omitempty"`
// The default explanation specification for this Model.
//
// The Model can be used for
// [requesting
// explanation][google.cloud.aiplatform.v1beta1.PredictionService.Explain]
// after being
// [deployed][google.cloud.aiplatform.v1beta1.EndpointService.DeployModel] if
// it is populated. The Model can be used for [batch
// explanation][google.cloud.aiplatform.v1beta1.BatchPredictionJob.generate_explanation]
// if it is populated.
//
// All fields of the explanation_spec can be overridden by
// [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec]
// of
// [DeployModelRequest.deployed_model][google.cloud.aiplatform.v1beta1.DeployModelRequest.deployed_model],
// or
// [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec]
// of
// [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob].
//
// If the default explanation specification is not set for this Model, this
// Model can still be used for
// [requesting
// explanation][google.cloud.aiplatform.v1beta1.PredictionService.Explain] by
// setting
// [explanation_spec][google.cloud.aiplatform.v1beta1.DeployedModel.explanation_spec]
// of
// [DeployModelRequest.deployed_model][google.cloud.aiplatform.v1beta1.DeployModelRequest.deployed_model]
// and for [batch
// explanation][google.cloud.aiplatform.v1beta1.BatchPredictionJob.generate_explanation]
// by setting
// [explanation_spec][google.cloud.aiplatform.v1beta1.BatchPredictionJob.explanation_spec]
// of
// [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob].
ExplanationSpec *ExplanationSpec `protobuf:"bytes,23,opt,name=explanation_spec,json=explanationSpec,proto3" json:"explanation_spec,omitempty"`
// Used to perform consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
Etag string `protobuf:"bytes,16,opt,name=etag,proto3" json:"etag,omitempty"`
// The labels with user-defined metadata to organize your Models.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
Labels map[string]string `protobuf:"bytes,17,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// Customer-managed encryption key spec for a Model. If set, this
// Model and all sub-resources of this Model will be secured by this key.
EncryptionSpec *EncryptionSpec `protobuf:"bytes,24,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"`
// Output only. Source of a model. It can either be automl training pipeline,
// custom training pipeline, BigQuery ML, or saved and tuned from Genie or
// Model Garden.
ModelSourceInfo *ModelSourceInfo `protobuf:"bytes,38,opt,name=model_source_info,json=modelSourceInfo,proto3" json:"model_source_info,omitempty"`
// Output only. If this Model is a copy of another Model, this contains info
// about the original.
OriginalModelInfo *Model_OriginalModelInfo `protobuf:"bytes,34,opt,name=original_model_info,json=originalModelInfo,proto3" json:"original_model_info,omitempty"`
// Output only. The resource name of the Artifact that was created in
// MetadataStore when creating the Model. The Artifact resource name pattern
// is
// `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`.
MetadataArtifact string `protobuf:"bytes,44,opt,name=metadata_artifact,json=metadataArtifact,proto3" json:"metadata_artifact,omitempty"`
// Optional. User input field to specify the base model source. Currently it
// only supports specifing the Model Garden models and Genie models.
BaseModelSource *Model_BaseModelSource `protobuf:"bytes,50,opt,name=base_model_source,json=baseModelSource,proto3" json:"base_model_source,omitempty"`
}
func (x *Model) Reset() {
*x = Model{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Model) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Model) ProtoMessage() {}
func (x *Model) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Model.ProtoReflect.Descriptor instead.
func (*Model) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{0}
}
func (x *Model) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Model) GetVersionId() string {
if x != nil {
return x.VersionId
}
return ""
}
func (x *Model) GetVersionAliases() []string {
if x != nil {
return x.VersionAliases
}
return nil
}
func (x *Model) GetVersionCreateTime() *timestamppb.Timestamp {
if x != nil {
return x.VersionCreateTime
}
return nil
}
func (x *Model) GetVersionUpdateTime() *timestamppb.Timestamp {
if x != nil {
return x.VersionUpdateTime
}
return nil
}
func (x *Model) GetDisplayName() string {
if x != nil {
return x.DisplayName
}
return ""
}
func (x *Model) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *Model) GetVersionDescription() string {
if x != nil {
return x.VersionDescription
}
return ""
}
func (x *Model) GetPredictSchemata() *PredictSchemata {
if x != nil {
return x.PredictSchemata
}
return nil
}
func (x *Model) GetMetadataSchemaUri() string {
if x != nil {
return x.MetadataSchemaUri
}
return ""
}
func (x *Model) GetMetadata() *structpb.Value {
if x != nil {
return x.Metadata
}
return nil
}
func (x *Model) GetSupportedExportFormats() []*Model_ExportFormat {
if x != nil {
return x.SupportedExportFormats
}
return nil
}
func (x *Model) GetTrainingPipeline() string {
if x != nil {
return x.TrainingPipeline
}
return ""
}
func (x *Model) GetContainerSpec() *ModelContainerSpec {
if x != nil {
return x.ContainerSpec
}
return nil
}
func (x *Model) GetArtifactUri() string {
if x != nil {
return x.ArtifactUri
}
return ""
}
func (x *Model) GetSupportedDeploymentResourcesTypes() []Model_DeploymentResourcesType {
if x != nil {
return x.SupportedDeploymentResourcesTypes
}
return nil
}
func (x *Model) GetSupportedInputStorageFormats() []string {
if x != nil {
return x.SupportedInputStorageFormats
}
return nil
}
func (x *Model) GetSupportedOutputStorageFormats() []string {
if x != nil {
return x.SupportedOutputStorageFormats
}
return nil
}
func (x *Model) GetCreateTime() *timestamppb.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *Model) GetUpdateTime() *timestamppb.Timestamp {
if x != nil {
return x.UpdateTime
}
return nil
}
func (x *Model) GetDeployedModels() []*DeployedModelRef {
if x != nil {
return x.DeployedModels
}
return nil
}
func (x *Model) GetExplanationSpec() *ExplanationSpec {
if x != nil {
return x.ExplanationSpec
}
return nil
}
func (x *Model) GetEtag() string {
if x != nil {
return x.Etag
}
return ""
}
func (x *Model) GetLabels() map[string]string {
if x != nil {
return x.Labels
}
return nil
}
func (x *Model) GetEncryptionSpec() *EncryptionSpec {
if x != nil {
return x.EncryptionSpec
}
return nil
}
func (x *Model) GetModelSourceInfo() *ModelSourceInfo {
if x != nil {
return x.ModelSourceInfo
}
return nil
}
func (x *Model) GetOriginalModelInfo() *Model_OriginalModelInfo {
if x != nil {
return x.OriginalModelInfo
}
return nil
}
func (x *Model) GetMetadataArtifact() string {
if x != nil {
return x.MetadataArtifact
}
return ""
}
func (x *Model) GetBaseModelSource() *Model_BaseModelSource {
if x != nil {
return x.BaseModelSource
}
return nil
}
// Contains information about the Large Model.
type LargeModelReference struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The unique name of the large Foundation or pre-built model. Like
// "chat-bison", "text-bison". Or model name with version ID, like
// "chat-bison@001", "text-bison@005", etc.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}
func (x *LargeModelReference) Reset() {
*x = LargeModelReference{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LargeModelReference) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LargeModelReference) ProtoMessage() {}
func (x *LargeModelReference) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use LargeModelReference.ProtoReflect.Descriptor instead.
func (*LargeModelReference) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{1}
}
func (x *LargeModelReference) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// Contains information about the source of the models generated from Model
// Garden.
type ModelGardenSource struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The model garden source model resource name.
PublicModelName string `protobuf:"bytes,1,opt,name=public_model_name,json=publicModelName,proto3" json:"public_model_name,omitempty"`
}
func (x *ModelGardenSource) Reset() {
*x = ModelGardenSource{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelGardenSource) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelGardenSource) ProtoMessage() {}
func (x *ModelGardenSource) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelGardenSource.ProtoReflect.Descriptor instead.
func (*ModelGardenSource) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{2}
}
func (x *ModelGardenSource) GetPublicModelName() string {
if x != nil {
return x.PublicModelName
}
return ""
}
// Contains information about the source of the models generated from Generative
// AI Studio.
type GenieSource struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The public base model URI.
BaseModelUri string `protobuf:"bytes,1,opt,name=base_model_uri,json=baseModelUri,proto3" json:"base_model_uri,omitempty"`
}
func (x *GenieSource) Reset() {
*x = GenieSource{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GenieSource) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GenieSource) ProtoMessage() {}
func (x *GenieSource) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GenieSource.ProtoReflect.Descriptor instead.
func (*GenieSource) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{3}
}
func (x *GenieSource) GetBaseModelUri() string {
if x != nil {
return x.BaseModelUri
}
return ""
}
// Contains the schemata used in Model's predictions and explanations via
// [PredictionService.Predict][google.cloud.aiplatform.v1beta1.PredictionService.Predict],
// [PredictionService.Explain][google.cloud.aiplatform.v1beta1.PredictionService.Explain]
// and [BatchPredictionJob][google.cloud.aiplatform.v1beta1.BatchPredictionJob].
type PredictSchemata struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Immutable. Points to a YAML file stored on Google Cloud Storage describing
// the format of a single instance, which are used in
// [PredictRequest.instances][google.cloud.aiplatform.v1beta1.PredictRequest.instances],
// [ExplainRequest.instances][google.cloud.aiplatform.v1beta1.ExplainRequest.instances]
// and
// [BatchPredictionJob.input_config][google.cloud.aiplatform.v1beta1.BatchPredictionJob.input_config].
// 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.
InstanceSchemaUri string `protobuf:"bytes,1,opt,name=instance_schema_uri,json=instanceSchemaUri,proto3" json:"instance_schema_uri,omitempty"`
// Immutable. Points to a YAML file stored on Google Cloud Storage describing
// the parameters of prediction and explanation via
// [PredictRequest.parameters][google.cloud.aiplatform.v1beta1.PredictRequest.parameters],
// [ExplainRequest.parameters][google.cloud.aiplatform.v1beta1.ExplainRequest.parameters]
// and
// [BatchPredictionJob.model_parameters][google.cloud.aiplatform.v1beta1.BatchPredictionJob.model_parameters].
// 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
// point to a location where the user only has a read access.
ParametersSchemaUri string `protobuf:"bytes,2,opt,name=parameters_schema_uri,json=parametersSchemaUri,proto3" json:"parameters_schema_uri,omitempty"`
// Immutable. Points to a YAML file stored on Google Cloud Storage describing
// the format of a single prediction produced by this Model, which are
// returned via
// [PredictResponse.predictions][google.cloud.aiplatform.v1beta1.PredictResponse.predictions],
// [ExplainResponse.explanations][google.cloud.aiplatform.v1beta1.ExplainResponse.explanations],
// and
// [BatchPredictionJob.output_config][google.cloud.aiplatform.v1beta1.BatchPredictionJob.output_config].
// 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.
PredictionSchemaUri string `protobuf:"bytes,3,opt,name=prediction_schema_uri,json=predictionSchemaUri,proto3" json:"prediction_schema_uri,omitempty"`
}
func (x *PredictSchemata) Reset() {
*x = PredictSchemata{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PredictSchemata) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PredictSchemata) ProtoMessage() {}
func (x *PredictSchemata) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PredictSchemata.ProtoReflect.Descriptor instead.
func (*PredictSchemata) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{4}
}
func (x *PredictSchemata) GetInstanceSchemaUri() string {
if x != nil {
return x.InstanceSchemaUri
}
return ""
}
func (x *PredictSchemata) GetParametersSchemaUri() string {
if x != nil {
return x.ParametersSchemaUri
}
return ""
}
func (x *PredictSchemata) GetPredictionSchemaUri() string {
if x != nil {
return x.PredictionSchemaUri
}
return ""
}
// Specification of a container for serving predictions. Some fields in this
// message correspond to fields in the [Kubernetes Container v1 core
// specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
type ModelContainerSpec struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 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](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing),
// including permissions requirements for the Vertex AI Service Agent.
//
// The container image is ingested upon
// [ModelService.UploadModel][google.cloud.aiplatform.v1beta1.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://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.
ImageUri string `protobuf:"bytes,1,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
// Immutable. Specifies the command that runs when the container starts. This
// overrides the container's
// [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint).
// Specify this field as an array of executable and arguments, similar to a
// Docker `ENTRYPOINT`'s "exec" form, not its "shell" form.
//
// If you do not specify this field, then the container's `ENTRYPOINT` runs,
// in conjunction with the
// [args][google.cloud.aiplatform.v1beta1.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 `CMD` and
// `ENTRYPOINT`
// 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 about how the
// `command` and `args` fields interact with a container's `ENTRYPOINT` and
// `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes).
//
// 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.v1beta1.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
// following syntax:
// <code>$(<var>VARIABLE_NAME</var>)</code>
// Note that this differs from Bash variable expansion, which does not use
// parentheses. If a variable cannot be resolved, the reference in the input
// string is used unchanged. To avoid variable expansion, you can escape this
// 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://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
Command []string `protobuf:"bytes,2,rep,name=command,proto3" json:"command,omitempty"`
// Immutable. Specifies arguments for the command that runs when the container
// starts. This overrides the container's
// [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). Specify
// this field as an array of executable and arguments, similar to a Docker
// `CMD`'s "default parameters" form.
//
// If you don't specify this field but do specify the
// [command][google.cloud.aiplatform.v1beta1.ModelContainerSpec.command]
// field, then the command from the `command` field runs without any
// additional arguments. See the [Kubernetes documentation about how the
// `command` and `args` fields interact with a container's `ENTRYPOINT` and
// `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://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact).
//
// 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.v1beta1.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
// following syntax:
// <code>$(<var>VARIABLE_NAME</var>)</code>
// Note that this differs from Bash variable expansion, which does not use
// parentheses. If a variable cannot be resolved, the reference in the input
// string is used unchanged. To avoid variable expansion, you can escape this
// 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://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
// Immutable. List of environment variables to set in the container. After the
// container starts running, code running in the container can read these
// environment variables.
//
// Additionally, the
// [command][google.cloud.aiplatform.v1beta1.ModelContainerSpec.command] and
// [args][google.cloud.aiplatform.v1beta1.ModelContainerSpec.args] fields can
// reference these variables. Later entries in this list can also reference
// earlier entries. For example, the following example sets the variable
// `VAR_2` to have the value `foo bar`:
//
// ```json
// [
//
// {
// "name": "VAR_1",
// "value": "foo"
// },
// {
// "name": "VAR_2",
// "value": "$(VAR_1) bar"
// }
//
// ]
// ```
//
// If you switch the order of the variables in the example, then the expansion
// does not occur.
//
// This field corresponds to the `env` field of the Kubernetes Containers
// [v1 core
// API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
Env []*EnvVar `protobuf:"bytes,4,rep,name=env,proto3" json:"env,omitempty"`
// 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. Vertex
// AI also sends
// [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:
//
// ```json
// [
//
// {
// "containerPort": 8080
// }
//
// ]
// ```
//
// 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://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).
Ports []*Port `protobuf:"bytes,5,rep,name=ports,proto3" json:"ports,omitempty"`
// Immutable. HTTP path on the container to send prediction requests to.
// Vertex AI forwards requests sent using
// [projects.locations.endpoints.predict][google.cloud.aiplatform.v1beta1.PredictionService.Predict]
// to this 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 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
// [ports][google.cloud.aiplatform.v1beta1.ModelContainerSpec.ports] field.
//
// If you don't specify this field, it defaults to the following value when
// you [deploy this Model to an
// Endpoint][google.cloud.aiplatform.v1beta1.EndpointService.DeployModel]:
// <code>/v1/endpoints/<var>ENDPOINT</var>/deployedModels/<var>DEPLOYED_MODEL</var>:predict</code>
// The placeholders in this value are replaced as follows:
//
// - <var>ENDPOINT</var>: The last segment (following `endpoints/`)of the
// Endpoint.name][] field of the Endpoint where this Model has been
// 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.v1beta1.DeployedModel.id] of the
// `DeployedModel`.
//
// (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).)
PredictRoute string `protobuf:"bytes,6,opt,name=predict_route,json=predictRoute,proto3" json:"predict_route,omitempty"`
// 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://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health).
//
// 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.v1beta1.ModelContainerSpec.ports] field.
//
// If you don't specify this field, it defaults to the following value when
// you [deploy this Model to an
// Endpoint][google.cloud.aiplatform.v1beta1.EndpointService.DeployModel]:
// <code>/v1/endpoints/<var>ENDPOINT</var>/deployedModels/<var>DEPLOYED_MODEL</var>:predict</code>
// The placeholders in this value are replaced as follows:
//
// - <var>ENDPOINT</var>: The last segment (following `endpoints/`)of the
// Endpoint.name][] field of the Endpoint where this Model has been
// 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.v1beta1.DeployedModel.id] of the
// `DeployedModel`.
//
// (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).)
HealthRoute string `protobuf:"bytes,7,opt,name=health_route,json=healthRoute,proto3" json:"health_route,omitempty"`
// Immutable. List of ports to expose from the container. Vertex AI sends gRPC
// prediction requests that it receives to the first port on this list. Vertex
// AI also sends liveness and health checks to this port.
//
// If you do not specify this field, gRPC requests to the container will be
// disabled.
//
// 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.
GrpcPorts []*Port `protobuf:"bytes,9,rep,name=grpc_ports,json=grpcPorts,proto3" json:"grpc_ports,omitempty"`
// Immutable. Deployment timeout.
// Limit for deployment timeout is 2 hours.
DeploymentTimeout *durationpb.Duration `protobuf:"bytes,10,opt,name=deployment_timeout,json=deploymentTimeout,proto3" json:"deployment_timeout,omitempty"`
// Immutable. The amount of the VM memory to reserve as the shared memory for
// the model in megabytes.
SharedMemorySizeMb int64 `protobuf:"varint,11,opt,name=shared_memory_size_mb,json=sharedMemorySizeMb,proto3" json:"shared_memory_size_mb,omitempty"`
// Immutable. Specification for Kubernetes startup probe.
StartupProbe *Probe `protobuf:"bytes,12,opt,name=startup_probe,json=startupProbe,proto3" json:"startup_probe,omitempty"`
// Immutable. Specification for Kubernetes readiness probe.
HealthProbe *Probe `protobuf:"bytes,13,opt,name=health_probe,json=healthProbe,proto3" json:"health_probe,omitempty"`
}
func (x *ModelContainerSpec) Reset() {
*x = ModelContainerSpec{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelContainerSpec) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelContainerSpec) ProtoMessage() {}
func (x *ModelContainerSpec) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelContainerSpec.ProtoReflect.Descriptor instead.
func (*ModelContainerSpec) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{5}
}
func (x *ModelContainerSpec) GetImageUri() string {
if x != nil {
return x.ImageUri
}
return ""
}
func (x *ModelContainerSpec) GetCommand() []string {
if x != nil {
return x.Command
}
return nil
}
func (x *ModelContainerSpec) GetArgs() []string {
if x != nil {
return x.Args
}
return nil
}
func (x *ModelContainerSpec) GetEnv() []*EnvVar {
if x != nil {
return x.Env
}
return nil
}
func (x *ModelContainerSpec) GetPorts() []*Port {
if x != nil {
return x.Ports
}
return nil
}
func (x *ModelContainerSpec) GetPredictRoute() string {
if x != nil {
return x.PredictRoute
}
return ""
}
func (x *ModelContainerSpec) GetHealthRoute() string {
if x != nil {
return x.HealthRoute
}
return ""
}
func (x *ModelContainerSpec) GetGrpcPorts() []*Port {
if x != nil {
return x.GrpcPorts
}
return nil
}
func (x *ModelContainerSpec) GetDeploymentTimeout() *durationpb.Duration {
if x != nil {
return x.DeploymentTimeout
}
return nil
}
func (x *ModelContainerSpec) GetSharedMemorySizeMb() int64 {
if x != nil {
return x.SharedMemorySizeMb
}
return 0
}
func (x *ModelContainerSpec) GetStartupProbe() *Probe {
if x != nil {
return x.StartupProbe
}
return nil
}
func (x *ModelContainerSpec) GetHealthProbe() *Probe {
if x != nil {
return x.HealthProbe
}
return nil
}
// Represents a network port in a container.
type Port struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The number of the port to expose on the pod's IP address.
// Must be a valid port number, between 1 and 65535 inclusive.
ContainerPort int32 `protobuf:"varint,3,opt,name=container_port,json=containerPort,proto3" json:"container_port,omitempty"`
}
func (x *Port) Reset() {
*x = Port{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Port) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Port) ProtoMessage() {}
func (x *Port) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Port.ProtoReflect.Descriptor instead.
func (*Port) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{6}
}
func (x *Port) GetContainerPort() int32 {
if x != nil {
return x.ContainerPort
}
return 0
}
// Detail description of the source information of the model.
type ModelSourceInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Type of the model source.
SourceType ModelSourceInfo_ModelSourceType `protobuf:"varint,1,opt,name=source_type,json=sourceType,proto3,enum=google.cloud.aiplatform.v1beta1.ModelSourceInfo_ModelSourceType" json:"source_type,omitempty"`
// If this Model is copy of another Model. If true then
// [source_type][google.cloud.aiplatform.v1beta1.ModelSourceInfo.source_type]
// pertains to the original.
Copy bool `protobuf:"varint,2,opt,name=copy,proto3" json:"copy,omitempty"`
}
func (x *ModelSourceInfo) Reset() {
*x = ModelSourceInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ModelSourceInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ModelSourceInfo) ProtoMessage() {}
func (x *ModelSourceInfo) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ModelSourceInfo.ProtoReflect.Descriptor instead.
func (*ModelSourceInfo) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{7}
}
func (x *ModelSourceInfo) GetSourceType() ModelSourceInfo_ModelSourceType {
if x != nil {
return x.SourceType
}
return ModelSourceInfo_MODEL_SOURCE_TYPE_UNSPECIFIED
}
func (x *ModelSourceInfo) GetCopy() bool {
if x != nil {
return x.Copy
}
return false
}
// Probe describes a health check to be performed against a container to
// determine whether it is alive or ready to receive traffic.
type Probe struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to ProbeType:
//
// *Probe_Exec
ProbeType isProbe_ProbeType `protobuf_oneof:"probe_type"`
// How often (in seconds) to perform the probe. Default to 10 seconds.
// Minimum value is 1. Must be less than timeout_seconds.
//
// Maps to Kubernetes probe argument 'periodSeconds'.
PeriodSeconds int32 `protobuf:"varint,2,opt,name=period_seconds,json=periodSeconds,proto3" json:"period_seconds,omitempty"`
// Number of seconds after which the probe times out. Defaults to 1 second.
// Minimum value is 1. Must be greater or equal to period_seconds.
//
// Maps to Kubernetes probe argument 'timeoutSeconds'.
TimeoutSeconds int32 `protobuf:"varint,3,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"`
}
func (x *Probe) Reset() {
*x = Probe{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Probe) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Probe) ProtoMessage() {}
func (x *Probe) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Probe.ProtoReflect.Descriptor instead.
func (*Probe) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{8}
}
func (m *Probe) GetProbeType() isProbe_ProbeType {
if m != nil {
return m.ProbeType
}
return nil
}
func (x *Probe) GetExec() *Probe_ExecAction {
if x, ok := x.GetProbeType().(*Probe_Exec); ok {
return x.Exec
}
return nil
}
func (x *Probe) GetPeriodSeconds() int32 {
if x != nil {
return x.PeriodSeconds
}
return 0
}
func (x *Probe) GetTimeoutSeconds() int32 {
if x != nil {
return x.TimeoutSeconds
}
return 0
}
type isProbe_ProbeType interface {
isProbe_ProbeType()
}
type Probe_Exec struct {
// Exec specifies the action to take.
Exec *Probe_ExecAction `protobuf:"bytes,1,opt,name=exec,proto3,oneof"`
}
func (*Probe_Exec) isProbe_ProbeType() {}
// Represents export format supported by the Model.
// All formats export to Google Cloud Storage.
type Model_ExportFormat struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The ID of the export format.
// The possible format IDs are:
//
// * `tflite`
// Used for Android mobile devices.
//
// * `edgetpu-tflite`
// Used for [Edge TPU](https://cloud.google.com/edge-tpu/) devices.
//
// * `tf-saved-model`
// A tensorflow model in SavedModel format.
//
// * `tf-js`
// A [TensorFlow.js](https://www.tensorflow.org/js) model that can be used
// in the browser and in Node.js using JavaScript.
//
// * `core-ml`
// Used for iOS mobile devices.
//
// * `custom-trained`
// A Model that was uploaded or trained by custom code.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// Output only. The content of this Model that may be exported.
ExportableContents []Model_ExportFormat_ExportableContent `protobuf:"varint,2,rep,packed,name=exportable_contents,json=exportableContents,proto3,enum=google.cloud.aiplatform.v1beta1.Model_ExportFormat_ExportableContent" json:"exportable_contents,omitempty"`
}
func (x *Model_ExportFormat) Reset() {
*x = Model_ExportFormat{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Model_ExportFormat) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Model_ExportFormat) ProtoMessage() {}
func (x *Model_ExportFormat) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Model_ExportFormat.ProtoReflect.Descriptor instead.
func (*Model_ExportFormat) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Model_ExportFormat) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *Model_ExportFormat) GetExportableContents() []Model_ExportFormat_ExportableContent {
if x != nil {
return x.ExportableContents
}
return nil
}
// Contains information about the original Model if this Model is a copy.
type Model_OriginalModelInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The resource name of the Model this Model is a copy of,
// including the revision. Format:
// `projects/{project}/locations/{location}/models/{model_id}@{version_id}`
Model string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"`
}
func (x *Model_OriginalModelInfo) Reset() {
*x = Model_OriginalModelInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Model_OriginalModelInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Model_OriginalModelInfo) ProtoMessage() {}
func (x *Model_OriginalModelInfo) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Model_OriginalModelInfo.ProtoReflect.Descriptor instead.
func (*Model_OriginalModelInfo) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Model_OriginalModelInfo) GetModel() string {
if x != nil {
return x.Model
}
return ""
}
// User input field to specify the base model source. Currently it only
// supports specifing the Model Garden models and Genie models.
type Model_BaseModelSource struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Source:
//
// *Model_BaseModelSource_ModelGardenSource
// *Model_BaseModelSource_GenieSource
Source isModel_BaseModelSource_Source `protobuf_oneof:"source"`
}
func (x *Model_BaseModelSource) Reset() {
*x = Model_BaseModelSource{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Model_BaseModelSource) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Model_BaseModelSource) ProtoMessage() {}
func (x *Model_BaseModelSource) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Model_BaseModelSource.ProtoReflect.Descriptor instead.
func (*Model_BaseModelSource) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{0, 2}
}
func (m *Model_BaseModelSource) GetSource() isModel_BaseModelSource_Source {
if m != nil {
return m.Source
}
return nil
}
func (x *Model_BaseModelSource) GetModelGardenSource() *ModelGardenSource {
if x, ok := x.GetSource().(*Model_BaseModelSource_ModelGardenSource); ok {
return x.ModelGardenSource
}
return nil
}
func (x *Model_BaseModelSource) GetGenieSource() *GenieSource {
if x, ok := x.GetSource().(*Model_BaseModelSource_GenieSource); ok {
return x.GenieSource
}
return nil
}
type isModel_BaseModelSource_Source interface {
isModel_BaseModelSource_Source()
}
type Model_BaseModelSource_ModelGardenSource struct {
// Source information of Model Garden models.
ModelGardenSource *ModelGardenSource `protobuf:"bytes,1,opt,name=model_garden_source,json=modelGardenSource,proto3,oneof"`
}
type Model_BaseModelSource_GenieSource struct {
// Information about the base model of Genie models.
GenieSource *GenieSource `protobuf:"bytes,2,opt,name=genie_source,json=genieSource,proto3,oneof"`
}
func (*Model_BaseModelSource_ModelGardenSource) isModel_BaseModelSource_Source() {}
func (*Model_BaseModelSource_GenieSource) isModel_BaseModelSource_Source() {}
// ExecAction specifies a command to execute.
type Probe_ExecAction struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Command is the command line to execute inside the container, the working
// directory for the command is root ('/') in the container's filesystem.
// The command is simply exec'd, it is not run inside a shell, so
// traditional shell instructions ('|', etc) won't work. To use a shell, you
// need to explicitly call out to that shell. Exit status of 0 is treated as
// live/healthy and non-zero is unhealthy.
Command []string `protobuf:"bytes,1,rep,name=command,proto3" json:"command,omitempty"`
}
func (x *Probe_ExecAction) Reset() {
*x = Probe_ExecAction{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Probe_ExecAction) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Probe_ExecAction) ProtoMessage() {}
func (x *Probe_ExecAction) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Probe_ExecAction.ProtoReflect.Descriptor instead.
func (*Probe_ExecAction) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{8, 0}
}
func (x *Probe_ExecAction) GetCommand() []string {
if x != nil {
return x.Command
}
return nil
}
var File_google_cloud_aiplatform_v1beta1_model_proto protoreflect.FileDescriptor
var file_google_cloud_aiplatform_v1beta1_model_proto_rawDesc = []byte{
0x0a, 0x2b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1f,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64,
0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c,
0x6f, 0x79, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x6e, 0x76,
0x5f, 0x76, 0x61, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c,
0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73,
0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x17, 0x0a,
0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0a, 0x76, 0x65,
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06,
0xe0, 0x41, 0x05, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49,
0x64, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x69,
0x61, 0x73, 0x65, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x13, 0x76, 0x65,
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x13, 0x76,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x76, 0x65, 0x72, 0x73, 0x69,
0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c,
0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1e, 0x20,
0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63,
0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x64, 0x69,
0x63, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d,
0x61, 0x74, 0x61, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65,
0x6d, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x13, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28,
0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61,
0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
0x74, 0x61, 0x12, 0x72, 0x0a, 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f,
0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x18, 0x14,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x78, 0x70,
0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16,
0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46,
0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x12, 0x5f, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69,
0x6e, 0x67, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
0x09, 0x42, 0x32, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x2c, 0x0a, 0x2a, 0x61, 0x69, 0x70, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70,
0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50,
0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x5f, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
0x69, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61,
0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x69,
0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
0xe0, 0x41, 0x05, 0x52, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x55, 0x72, 0x69,
0x12, 0x94, 0x01, 0x0a, 0x24, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x64,
0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0e, 0x32,
0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65,
0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42,
0x03, 0xe0, 0x41, 0x03, 0x52, 0x21, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x44,
0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x1f, 0x73, 0x75, 0x70, 0x70, 0x6f,
0x72, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61,
0x67, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64,
0x49, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d,
0x61, 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64,
0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f,
0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0,
0x41, 0x03, 0x52, 0x1d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4f, 0x75, 0x74,
0x70, 0x75, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74,
0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69,
0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74,
0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5f, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65,
0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65,
0x66, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64,
0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70,
0x65, 0x63, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x4a, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c,
0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62,
0x65, 0x6c, 0x73, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45,
0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0e, 0x65,
0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x61, 0x0a,
0x11, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e,
0x66, 0x6f, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
0x0f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
0x12, 0x6d, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x6f, 0x64,
0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x6f,
0x64, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x6f, 0x72,
0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12,
0x30, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x61, 0x72, 0x74, 0x69,
0x66, 0x61, 0x63, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
0x10, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
0x74, 0x12, 0x67, 0x0a, 0x11, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d,
0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x4d,
0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xf2, 0x01, 0x0a, 0x0c, 0x45,
0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64,
0x12, 0x7b, 0x0a, 0x13, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63,
0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x45, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d,
0x61, 0x74, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e,
0x74, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x65, 0x78, 0x70, 0x6f, 0x72,
0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x50, 0x0a,
0x11, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65,
0x6e, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x41, 0x42, 0x4c, 0x45,
0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41,
0x43, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x02, 0x1a,
0x52, 0x0a, 0x11, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70,
0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x05, 0x6d, 0x6f,
0x64, 0x65, 0x6c, 0x1a, 0xd4, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65,
0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x64, 0x0a, 0x13, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
0x5f, 0x67, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x47, 0x61, 0x72, 0x64,
0x65, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x11, 0x6d, 0x6f, 0x64, 0x65,
0x6c, 0x47, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x51, 0x0a,
0x0c, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x69, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61,
0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79,
0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x54, 0x79, 0x70,
0x65, 0x12, 0x29, 0x0a, 0x25, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f,
0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55,
0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13,
0x44, 0x45, 0x44, 0x49, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52,
0x43, 0x45, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x41, 0x54,
0x49, 0x43, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x53, 0x10, 0x02, 0x12, 0x14,
0x0a, 0x10, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43,
0x45, 0x53, 0x10, 0x03, 0x3a, 0x5c, 0xea, 0x41, 0x59, 0x0a, 0x1f, 0x61, 0x69, 0x70, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x36, 0x70, 0x72, 0x6f, 0x6a,
0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c,
0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x7d, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x6d, 0x6f, 0x64, 0x65,
0x6c, 0x7d, 0x22, 0x2e, 0x0a, 0x13, 0x4c, 0x61, 0x72, 0x67, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c,
0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x22, 0x44, 0x0a, 0x11, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x47, 0x61, 0x72, 0x64, 0x65,
0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x70, 0x75, 0x62, 0x6c, 0x69,
0x63, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4d,
0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x38, 0x0a, 0x0b, 0x47, 0x65, 0x6e, 0x69,
0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, 0x5f,
0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x55,
0x72, 0x69, 0x22, 0xb8, 0x01, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x53, 0x63,
0x68, 0x65, 0x6d, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
0x63, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x11, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
0x63, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x12, 0x37, 0x0a, 0x15, 0x70,
0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61,
0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52,
0x13, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d,
0x61, 0x55, 0x72, 0x69, 0x12, 0x37, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x22, 0xb9, 0x05,
0x0a, 0x12, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
0x53, 0x70, 0x65, 0x63, 0x12, 0x23, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72,
0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52,
0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x6f, 0x6d,
0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52,
0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73,
0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x61, 0x72, 0x67,
0x73, 0x12, 0x3e, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x03, 0x65, 0x6e,
0x76, 0x12, 0x40, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x05, 0x70, 0x6f,
0x72, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x5f, 0x72,
0x6f, 0x75, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52,
0x0c, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x26, 0x0a,
0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x07, 0x20,
0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x70, 0x6f,
0x72, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x72, 0x74,
0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x09, 0x67, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x73,
0x12, 0x4d, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74,
0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x11, 0x64, 0x65,
0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12,
0x36, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79,
0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6d, 0x62, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03,
0xe0, 0x41, 0x05, 0x52, 0x12, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72,
0x79, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x12, 0x50, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74,
0x75, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31,
0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x73, 0x74, 0x61,
0x72, 0x74, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x68, 0x65, 0x61,
0x6c, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61,
0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x68, 0x65,
0x61, 0x6c, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x50, 0x6f, 0x72,
0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70,
0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61,
0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xaa, 0x02, 0x0a, 0x0f, 0x4d, 0x6f, 0x64,
0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x61, 0x0a, 0x0b,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65,
0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49,
0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54,
0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x63, 0x6f, 0x70, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x63,
0x6f, 0x70, 0x79, 0x22, 0x9f, 0x01, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x4f, 0x44, 0x45, 0x4c,
0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53,
0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x55,
0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d,
0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x51, 0x4d, 0x4c, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c,
0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x47, 0x41, 0x52, 0x44, 0x45, 0x4e, 0x10, 0x04, 0x12, 0x09,
0x0a, 0x05, 0x47, 0x45, 0x4e, 0x49, 0x45, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x55, 0x53,
0x54, 0x4f, 0x4d, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x45, 0x4d, 0x42, 0x45, 0x44, 0x44, 0x49,
0x4e, 0x47, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x41, 0x52, 0x4b, 0x45, 0x54, 0x50, 0x4c,
0x41, 0x43, 0x45, 0x10, 0x07, 0x22, 0xd6, 0x01, 0x0a, 0x05, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12,
0x47, 0x0a, 0x04, 0x65, 0x78, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e,
0x50, 0x72, 0x6f, 0x62, 0x65, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x48, 0x00, 0x52, 0x04, 0x65, 0x78, 0x65, 0x63, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x69,
0x6f, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0d, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12,
0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e,
0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x1a, 0x26, 0x0a, 0x0a, 0x45, 0x78, 0x65, 0x63,
0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0xe1,
0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76,
0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x72, 0x6f,
0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f,
0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22,
0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41,
0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74,
0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_google_cloud_aiplatform_v1beta1_model_proto_rawDescOnce sync.Once
file_google_cloud_aiplatform_v1beta1_model_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_model_proto_rawDesc
)
func file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP() []byte {
file_google_cloud_aiplatform_v1beta1_model_proto_rawDescOnce.Do(func() {
file_google_cloud_aiplatform_v1beta1_model_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_model_proto_rawDescData)
})
return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescData
}
var file_google_cloud_aiplatform_v1beta1_model_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_google_cloud_aiplatform_v1beta1_model_proto_goTypes = []interface{}{
(Model_DeploymentResourcesType)(0), // 0: google.cloud.aiplatform.v1beta1.Model.DeploymentResourcesType
(Model_ExportFormat_ExportableContent)(0), // 1: google.cloud.aiplatform.v1beta1.Model.ExportFormat.ExportableContent
(ModelSourceInfo_ModelSourceType)(0), // 2: google.cloud.aiplatform.v1beta1.ModelSourceInfo.ModelSourceType
(*Model)(nil), // 3: google.cloud.aiplatform.v1beta1.Model
(*LargeModelReference)(nil), // 4: google.cloud.aiplatform.v1beta1.LargeModelReference
(*ModelGardenSource)(nil), // 5: google.cloud.aiplatform.v1beta1.ModelGardenSource
(*GenieSource)(nil), // 6: google.cloud.aiplatform.v1beta1.GenieSource
(*PredictSchemata)(nil), // 7: google.cloud.aiplatform.v1beta1.PredictSchemata
(*ModelContainerSpec)(nil), // 8: google.cloud.aiplatform.v1beta1.ModelContainerSpec
(*Port)(nil), // 9: google.cloud.aiplatform.v1beta1.Port
(*ModelSourceInfo)(nil), // 10: google.cloud.aiplatform.v1beta1.ModelSourceInfo
(*Probe)(nil), // 11: google.cloud.aiplatform.v1beta1.Probe
(*Model_ExportFormat)(nil), // 12: google.cloud.aiplatform.v1beta1.Model.ExportFormat
(*Model_OriginalModelInfo)(nil), // 13: google.cloud.aiplatform.v1beta1.Model.OriginalModelInfo
(*Model_BaseModelSource)(nil), // 14: google.cloud.aiplatform.v1beta1.Model.BaseModelSource
nil, // 15: google.cloud.aiplatform.v1beta1.Model.LabelsEntry
(*Probe_ExecAction)(nil), // 16: google.cloud.aiplatform.v1beta1.Probe.ExecAction
(*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp
(*structpb.Value)(nil), // 18: google.protobuf.Value
(*DeployedModelRef)(nil), // 19: google.cloud.aiplatform.v1beta1.DeployedModelRef
(*ExplanationSpec)(nil), // 20: google.cloud.aiplatform.v1beta1.ExplanationSpec
(*EncryptionSpec)(nil), // 21: google.cloud.aiplatform.v1beta1.EncryptionSpec
(*EnvVar)(nil), // 22: google.cloud.aiplatform.v1beta1.EnvVar
(*durationpb.Duration)(nil), // 23: google.protobuf.Duration
}
var file_google_cloud_aiplatform_v1beta1_model_proto_depIdxs = []int32{
17, // 0: google.cloud.aiplatform.v1beta1.Model.version_create_time:type_name -> google.protobuf.Timestamp
17, // 1: google.cloud.aiplatform.v1beta1.Model.version_update_time:type_name -> google.protobuf.Timestamp
7, // 2: google.cloud.aiplatform.v1beta1.Model.predict_schemata:type_name -> google.cloud.aiplatform.v1beta1.PredictSchemata
18, // 3: google.cloud.aiplatform.v1beta1.Model.metadata:type_name -> google.protobuf.Value
12, // 4: google.cloud.aiplatform.v1beta1.Model.supported_export_formats:type_name -> google.cloud.aiplatform.v1beta1.Model.ExportFormat
8, // 5: google.cloud.aiplatform.v1beta1.Model.container_spec:type_name -> google.cloud.aiplatform.v1beta1.ModelContainerSpec
0, // 6: google.cloud.aiplatform.v1beta1.Model.supported_deployment_resources_types:type_name -> google.cloud.aiplatform.v1beta1.Model.DeploymentResourcesType
17, // 7: google.cloud.aiplatform.v1beta1.Model.create_time:type_name -> google.protobuf.Timestamp
17, // 8: google.cloud.aiplatform.v1beta1.Model.update_time:type_name -> google.protobuf.Timestamp
19, // 9: google.cloud.aiplatform.v1beta1.Model.deployed_models:type_name -> google.cloud.aiplatform.v1beta1.DeployedModelRef
20, // 10: google.cloud.aiplatform.v1beta1.Model.explanation_spec:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpec
15, // 11: google.cloud.aiplatform.v1beta1.Model.labels:type_name -> google.cloud.aiplatform.v1beta1.Model.LabelsEntry
21, // 12: google.cloud.aiplatform.v1beta1.Model.encryption_spec:type_name -> google.cloud.aiplatform.v1beta1.EncryptionSpec
10, // 13: google.cloud.aiplatform.v1beta1.Model.model_source_info:type_name -> google.cloud.aiplatform.v1beta1.ModelSourceInfo
13, // 14: google.cloud.aiplatform.v1beta1.Model.original_model_info:type_name -> google.cloud.aiplatform.v1beta1.Model.OriginalModelInfo
14, // 15: google.cloud.aiplatform.v1beta1.Model.base_model_source:type_name -> google.cloud.aiplatform.v1beta1.Model.BaseModelSource
22, // 16: google.cloud.aiplatform.v1beta1.ModelContainerSpec.env:type_name -> google.cloud.aiplatform.v1beta1.EnvVar
9, // 17: google.cloud.aiplatform.v1beta1.ModelContainerSpec.ports:type_name -> google.cloud.aiplatform.v1beta1.Port
9, // 18: google.cloud.aiplatform.v1beta1.ModelContainerSpec.grpc_ports:type_name -> google.cloud.aiplatform.v1beta1.Port
23, // 19: google.cloud.aiplatform.v1beta1.ModelContainerSpec.deployment_timeout:type_name -> google.protobuf.Duration
11, // 20: google.cloud.aiplatform.v1beta1.ModelContainerSpec.startup_probe:type_name -> google.cloud.aiplatform.v1beta1.Probe
11, // 21: google.cloud.aiplatform.v1beta1.ModelContainerSpec.health_probe:type_name -> google.cloud.aiplatform.v1beta1.Probe
2, // 22: google.cloud.aiplatform.v1beta1.ModelSourceInfo.source_type:type_name -> google.cloud.aiplatform.v1beta1.ModelSourceInfo.ModelSourceType
16, // 23: google.cloud.aiplatform.v1beta1.Probe.exec:type_name -> google.cloud.aiplatform.v1beta1.Probe.ExecAction
1, // 24: google.cloud.aiplatform.v1beta1.Model.ExportFormat.exportable_contents:type_name -> google.cloud.aiplatform.v1beta1.Model.ExportFormat.ExportableContent
5, // 25: google.cloud.aiplatform.v1beta1.Model.BaseModelSource.model_garden_source:type_name -> google.cloud.aiplatform.v1beta1.ModelGardenSource
6, // 26: google.cloud.aiplatform.v1beta1.Model.BaseModelSource.genie_source:type_name -> google.cloud.aiplatform.v1beta1.GenieSource
27, // [27:27] is the sub-list for method output_type
27, // [27:27] is the sub-list for method input_type
27, // [27:27] is the sub-list for extension type_name
27, // [27:27] is the sub-list for extension extendee
0, // [0:27] is the sub-list for field type_name
}
func init() { file_google_cloud_aiplatform_v1beta1_model_proto_init() }
func file_google_cloud_aiplatform_v1beta1_model_proto_init() {
if File_google_cloud_aiplatform_v1beta1_model_proto != nil {
return
}
file_google_cloud_aiplatform_v1beta1_deployed_model_ref_proto_init()
file_google_cloud_aiplatform_v1beta1_encryption_spec_proto_init()
file_google_cloud_aiplatform_v1beta1_env_var_proto_init()
file_google_cloud_aiplatform_v1beta1_explanation_proto_init()
if !protoimpl.UnsafeEnabled {
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Model); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LargeModelReference); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelGardenSource); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GenieSource); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PredictSchemata); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelContainerSpec); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Port); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ModelSourceInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Probe); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Model_ExportFormat); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Model_OriginalModelInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Model_BaseModelSource); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Probe_ExecAction); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[8].OneofWrappers = []interface{}{
(*Probe_Exec)(nil),
}
file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[11].OneofWrappers = []interface{}{
(*Model_BaseModelSource_ModelGardenSource)(nil),
(*Model_BaseModelSource_GenieSource)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_cloud_aiplatform_v1beta1_model_proto_rawDesc,
NumEnums: 3,
NumMessages: 14,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_cloud_aiplatform_v1beta1_model_proto_goTypes,
DependencyIndexes: file_google_cloud_aiplatform_v1beta1_model_proto_depIdxs,
EnumInfos: file_google_cloud_aiplatform_v1beta1_model_proto_enumTypes,
MessageInfos: file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes,
}.Build()
File_google_cloud_aiplatform_v1beta1_model_proto = out.File
file_google_cloud_aiplatform_v1beta1_model_proto_rawDesc = nil
file_google_cloud_aiplatform_v1beta1_model_proto_goTypes = nil
file_google_cloud_aiplatform_v1beta1_model_proto_depIdxs = nil
}